首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从QWidget和另一个基类的乘法继承?

从QWidget和另一个基类的乘法继承?
EN

Stack Overflow用户
提问于 2018-10-10 09:06:26
回答 1查看 735关注 0票数 0

我正在尝试创建一个PyQt5.QtWidgets.QWidget派生的小部件,同时继承另一个基类Base

Base继承会导致调用QWidget构造函数时出错,说我从未提供Base所需的参数。

以下是我试图调用QWidgetBase构造函数的方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Deriv(QtWidgets.QWidget, Base):
    def __init__(self):
        QtWidgets.QWidget.__init__(self)
        Base.__init__(self, "hello world")

我所犯的错误是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    QtWidgets.QWidget.__init__(self)
TypeError: __init__() missing 1 required positional argument: 'id'

是否可以同时继承QWidgetBase,如果可以,如何正确调用它们各自的构造函数?

下面是一个示例应用程序,它复制了我正在经历的错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/env python3
import sys
from PyQt5 import QtWidgets

class Base(object):
    def __init__(self, id):
        self.id = id

class Deriv(QtWidgets.QWidget, Base):
    def __init__(self):
        QtWidgets.QWidget.__init__(self)
        Base.__init__(self, "hello world")

        self.show()

def main():
    app = QtWidgets.QApplication(sys.argv)
    d = Deriv()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

这是回溯:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Traceback (most recent call last):
  File "./test.py", line 22, in <module>
    main()
  File "./test.py", line 18, in main
    d = Deriv()
  File "./test.py", line 11, in __init__
    QtWidgets.QWidget.__init__(self)
TypeError: __init__() missing 1 required positional argument: 'id'

注意,如果我只从QWidget继承(所以只删除引用Base的所有内容),那么代码就能工作了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Deriv(QtWidgets.QWidget):
    def __init__(self):
        QtWidgets.QWidget.__init__(self)

        self.show()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-10 09:36:37

我假设QtWidgets.QWidget.__init__本身使用super来调用__init__。对于单个继承情况,MRO由三个类组成:[Deriv, QtWidgets.QWidget, object]。调用super(QtWidgets.QWidget, self).__init__将调用object.__init__,它不需要任何额外的参数。

在您的多继承示例中,MRO如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Deriv, QtWidgets.QWidget, Base, object]

这意味着现在调用super(QtWidgets.QWidget, self).__init__不是引用object.__init__,而是引用Base.__init__,这确实需要一个额外的参数,从而导致您看到的错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52745442

复制
相关文章
SQL server 2005安装问题
每次在台式机上安装SQL server 2005,遇到过需要修改注册表的错误,修改了就好了。
Tony老师
2020/03/05
1K0
SQL server 2005安装问题
Sql Server 2005 CLR实例
本文转载:http://www.cnblogs.com/yongfa365/archive/2010/04/26/SQL-Server-CLR.html
跟着阿笨一起玩NET
2018/09/18
6680
T-SQL Enhancement in SQL Server 2005[下篇]
在第一部分中,我们讨论了APPLY和CTE这两个T-SQL Enhancement。APPLY实现了Table和TVF的Join,CTE通过创建“临时的View”的方式使问题化繁为简。现在我们接着来讨论另外两个重要的T-SQL Enhancement Items:PIVOT和Ranking。  三、 PIVOT Operator PIVOT的中文意思是“在枢轴上转动”,比如对于一个2维坐标,将横坐标变成纵坐标,将纵坐标变成横坐标。反映在一个Relational Table上的意思就是:变成为列,变列为行。
蒋金楠
2018/02/07
1.5K0
T-SQL Enhancement in SQL Server 2005[下篇]
T-SQL Enhancement in SQL Server 2005[上篇]
较之前一版本,SQL Server 2005可以说是作出了根本性的革新。对于一般的编程人员来说,最具吸引力的一大特性就是实现了对CLR的寄宿,使我们可以使用任意一种.NET Programming Language来编写Stored Procedure、Function、Trigger、User Defined Type等等。但是并不意味着我们使用多年的T-SQL即将被淘汰,而事实上T-SQL仍然是我们最为常见的基于Database的编程语言。为了使编程人员更容易地使用T-SQL来实现一些较为复杂的功能,S
蒋金楠
2018/02/07
1.8K0
T-SQL Enhancement in SQL Server 2005[上篇]
SQL Server 2005的负载均衡
SQL Server 2005仍然不直接地支持负载均衡——但是它为以前SQL Server版本中可用的所有负载均衡方法提供了令人激动的改善和支持。   目录 1、端到端拓扑的事务性复制 2、表分割 3、备份和重新存储上的改善(片段式重新存储) 4、数据库镜像和快照 端到端拓扑的事务性复制 SQL Server 2005对端到端(P2P)的拓扑结构上的事务性的复制加强了支持。 SQL Server 2000支持双向的复制,这就可以让两台服务器同时对彼此发布和订阅数据。服务器可以更新同一个共享数据,但是在这样的
张善友
2018/01/29
1K0
sql server 2005卸载教程_sql卸载工具
如果您要安装新版的sql就必须先完整的卸载sql2005,如果你按照常规的方法是不能完整的卸载sql2005,从而会引起安装的时候说sql已经挂起的错误,sql2005卸载工具(sql server 2005卸载工具),是一个帮你完整的清理已经安装的sql的工具。
全栈程序员站长
2022/09/29
1.4K0
SQL Server 2005 安装图解教程(Windows)
因工作需要,好久未安装SQL Server2005,今天安装了一下,特此写下安装步骤留下笔记。
全栈程序员站长
2022/09/06
4.4K0
SQL Server 2005 安装图解教程(Windows)
Sql server 2005带来的分页便利
select threadid from  ( select threadid, ROW_NUMBER() OVER (order by stickydate) as Pos from cs_threads ) as T  where T.Pos > 100000 and T.Pos < 100030
Java架构师必看
2021/03/22
3810
3-1 SQL Server 2005的
所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。SQL Server 2005 提供了几种自动的可以通过编程来完成的机制,包括事务日志、SQL事务控制语句,以及事务处理运行过程中通过锁定保证数据完整性的机制。当用户对数据库并发访问时,为了确保事务完整性和数据库一致性,需要使用锁定。事务和锁是两个紧密联系的概念。通过事务的批处理和锁的使用,还可以监测系统,以及优化物理数据库。
py3study
2020/01/09
7210
SQL server 2005 切换分区表
如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2009/11/10/4794371.aspx
Leshami
2018/08/07
7020
3-3 SQL Server 2005数
一个数据库系统的性能依赖于组成这些系统的数据库中物理设计结构的有效配置。这些物理设计结构包括索引、聚集索引、索引视图和分区等,其目的在于提高数据库的性能和可管理性。SQL Server 2005提供了一套综合的工具,用于优化物理数据库的设计,其中数据库引擎优化顾问,是分析一个或多个数据库上工作负荷(对要做出优化的数据库而编写的一组T-SQL语名句)的性能效果的工具。本节主要介绍数据库引擎优化顾问的使用。
py3study
2020/01/07
5890
微软推出SQL Server 2005 Report Packs
微软推出八个SQL Server 2005 报表类型,包括了: SQL Server 2005 Report Pack for SQL Server Integration Services Download this set of five predefined reports and a sample database to easily visualize, filter, analyze, and organize Log and Error row data generated by SQL S
张善友
2018/01/29
6260
SQL Server 2005 同义词Bug
今天发现了SQL2005的一个Bug,在建立同义词链接Oracle的时候,使用下面的语句:
深蓝studyzy
2022/06/15
2740
SQL Server 2005单元级加密和SQL Server 2008 透明数据加密
SQL Server 2005 引入了在自身的数据库引擎中加密的功能。通过使用被数据库所管理的内部证书或密钥结构,这能够被用于加密和解密任意的数据。而不需要借助外部的证书或密钥来执行。 SQL Se
张善友
2018/01/31
1.3K0
SQL Server 2005单元级加密和SQL Server 2008 透明数据加密
配置SQL Server 2005 Express的Windows和SQL Server身份验证
如何安装SQL Server 2005 Express、SQL Server Management Studio Express,以及配置SQL Server 2005 Express的身份验证方式,启用sa登录名。
阳光岛主
2019/02/19
1.9K0
SQL Server2005中的SMO编程
SMO是SQL Mangagement Objects的简称.与之相对应的是ADO.Net,不过不同的地方是ADO.Net是用于数据访问的,而SMO是用于设计的,虽然SMO能够再服务器上执行任意的SQL语句.另外一个不同的地方是ADO.Net可以访问计算机中任意数据源,而SMO对象是专门针对SQL Server而设计的.
深蓝studyzy
2022/06/15
1K0
Sql Server 2005 ROW_NUMBER 函数实现分页
过去用SQL Server 2000分页的,大多都用到了临时表。SQL Server 2005 ROW_NUMBER 函数支持分页,性能据说也非常不错。 Paging Records Using SQL Server 2005 Database Paging in SQL Server 2005 Sql Server 2005自定义分页 最近MSDN Magazine上的一篇文章10 Tips for Writing High-Performance Web Applications提到了有效的数据分页技
张善友
2018/01/19
1K0
SQL Server2005的连接和配置(入门)
 如果服务器和客户端是同一台机器,那么可以使用ShareMemory进行连接,这种方式不需要通过网络,所以速度应该是最快的。使用方法就是在SQL Server Mangage Studio中的登录-选项-“连接属性”中选择该网络协议就是了。
深蓝studyzy
2022/06/15
1.2K0
SQL Server2005 新数据类型XML
 在SQL Server2005中继续延续了微软在.Net中的设计思想 将XML和.Net紧密地结合到其中.用.Net在Sql2005中写存储过程定义函数我还没有研究过,今天就只简单得谈谈XML在SQL2005中的应用.
深蓝studyzy
2022/06/15
4980
SQL server 2005 PIVOT运算符的使用
        PIVOT,UNPIVOT运算符是SQL server 2005支持的新功能之一,主要用来实现行到列的转换。本文主要介绍PIVOT运算符的操作,以及如何实现动态PIVOT的行列转换。
Leshami
2018/08/07
1.6K0

相似问题

SQL Server (2005)查询帮助

11

SQL Server 2005查询帮助

42

TSql (sql Server2005)查询运行缓慢

10

帮助Delphi和Sql Server 2005

14

SQL Server 2005透视查询帮助

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文