当我们通过pyqt开发时,eric6为我们提供了一个方便的工具:图形化的绘制UI工具--qt designer。

我们可以通过它开发多个UI,然后利用信号-槽工具,将功能代码附着在上面。也可以将多个界面连接起来。

接下来,我要提供将多个UI链接起来的思路。

一:讲解:qt designer 自动生成的代码是怎样运行的:

(一)组成

qt desinger自动生成的代码为一个对象和对象启动命令,对象中包含两个函数,setupUi()和retranslateUi()。

形如这样:

from ... import ....
class someclassname(object):
    def setupUi():
        ...
    def retranslateUi():
        ...​
if  __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())​​

(二)运行方式:

(1)两个函数setupUI和retranslateUi负责绘制Ui,其中setupUI会调用retranslateUi。

(2)if __name__ = "__main__" 及以后的语句是python的主程序运行

app = QtWidgets.QApplication(sys.argv)
......
sys.exit(app.exec_())

上面两句为pyqt主程序运行通用语句

(3)

Dialog = QtWidgets.QDialog() # 获取窗口类型实例
 ui = someclassname()                # 取得ui的class实例
 ui.setupUi(Dialog)                       # 将ui实例绘制到窗口实例上​

(4)

Dialog.show()                               # 展示窗口​

二:如何组合窗口

(一)首先,建立一个主程序的python文件,然后各种import

(1)基本引用

import sys
from PyQt5 import QtCore, QtGui, QtWidgets

(2)文件引用:引用各个Ui的py文件的class

(二)实例化启动qt应用

app = QtWidgets.QApplication(sys.argv)​

(三)实例化各种窗口,方式如1.2.3 中的三个语句,例如:

!!!!注意,修改对应相关ui的py文件的变量名函数名避免冲突!!!!!!!

(1)主窗口

ChenSpider = QtWidgets.QMainWindow()
ui = Ui_ChenSpider()
ui.setupUi(ChenSpider)​

(2)弹出窗口1

Dialog = QtWidgets.QDialog()
ui2 = Ui_Dialog()
ui2.setupUi2(Dialog)​

(3)弹出窗口2

Dialog3 = QtWidgets.QDialog()
ui3 = Ui_Dialog3()
ui3.setupUi3(Dialog3)​

(四) 将弹出窗口绑定在主窗口某个按钮上

例子中,将主窗口chenSpider的loginmysqlbttn按钮绑定在窗口1上,aboutbttn绑定在窗口2上,点击弹出

bttn = ui.loginmysqlbttn
bttn.clicked.connect(Dialog.show)​

bttn2 = ui.aboutbttn
bttn2.clicked.connect(Dialog3.show)​

(五) 启动

if __name__ == "__main__":
    ChenSpider.show()
    sys.exit(app.exec_())
 ​

三:完整代码

(一)主文件(请运行此文件)

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from Ui_main_Window import Ui_ChenSpider
from Ui_mysqllogin import Ui_Dialog
from Ui_about import Ui_Dialog3
 
# part 1
# 实例化启动qt应用
app = QtWidgets.QApplication(sys.argv)
# 将chenSpider设为主窗口实例
ChenSpider = QtWidgets.QMainWindow()
#  取得UI class 的实例
ui = Ui_ChenSpider()
# 将UI 应用到 主窗口 chenSpider 上 
ui.setupUi(ChenSpider)
# part 2 登录mysql
Dialog = QtWidgets.QDialog()
ui2 = Ui_Dialog()
ui2.setupUi2(Dialog)
# part 3 关于界面
Dialog3 = QtWidgets.QDialog()
ui3 = Ui_Dialog3()
ui3.setupUi3(Dialog3)
 
# part 4
# 设计信号-槽点
# 建立对象实例化的访问
bttn = ui.loginmysqlbttn
bttn.clicked.connect(Dialog.show)
 
bttn2 = ui.aboutbttn
bttn2.clicked.connect(Dialog3.show)
 
if __name__ == "__main__":
    # 展示主窗口 chenSpider
     ChenSpider.show()
    sys.exit(app.exec_())​

(二)主窗口代码

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog3(object):
    def setupUi3(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 296)
        self.dialogButtonBox = QtWidgets.QDialogButtonBox(Dialog)
        self.dialogButtonBox.setGeometry(QtCore.QRect(190, 240, 181, 32))
        self.dialogButtonBox.setOrientation(QtCore.Qt.Horizontal)
        self.dialogButtonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
        self.dialogButtonBox.setObjectName("dialogButtonBox")
        self.author = QtWidgets.QLabel(Dialog)
        self.author.setGeometry(QtCore.QRect(40, 20, 191, 17))
        self.author.setObjectName("author")
        self.email = QtWidgets.QLabel(Dialog)
        self.email.setGeometry(QtCore.QRect(40, 50, 271, 17))
        self.email.setObjectName("email")
        self.github = QtWidgets.QLabel(Dialog)
        self.github.setGeometry(QtCore.QRect(40, 80, 351, 17))
        self.github.setObjectName("github")
        self.GPL = QtWidgets.QLabel(Dialog)
        self.GPL.setGeometry(QtCore.QRect(40, 110, 161, 17))
        self.GPL.setObjectName("GPL")

        self.retranslateUi(Dialog)
        self.dialogButtonBox.accepted.connect(Dialog.accept)
        self.dialogButtonBox.rejected.connect(Dialog.reject)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.author.setText(_translate("Dialog", "作者:陈严肃"))
        self.email.setText(_translate("Dialog", "联系邮箱:aschenyansu@foxmail.com"))
        self.github.setText(_translate("Dialog", "github: https://github.com/chenyansu/pyspidergui"))
        self.GPL.setText(_translate("Dialog", "本软件遵循GPL v2协议"))

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog3 = QtWidgets.QDialog()
    ui3 = Ui_Dialog()
    ui3.setupUi(Dialog3)
    Dialog3.show()
    sys.exit(app.exec_())

(三)窗口一:

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi2(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(480, 297)
        self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
        self.buttonBox.setGeometry(QtCore.QRect(260, 240, 181, 32))
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
        self.buttonBox.setObjectName("buttonBox")
        self.hostlnedt = QtWidgets.QLineEdit(Dialog)
        self.hostlnedt.setGeometry(QtCore.QRect(120, 20, 113, 27))
        self.hostlnedt.setObjectName("hostlnedt")
        self.hostlbl = QtWidgets.QLabel(Dialog)
        self.hostlbl.setGeometry(QtCore.QRect(20, 26, 81, 21))
        self.hostlbl.setObjectName("hostlbl")
        self.usernamelbl = QtWidgets.QLabel(Dialog)
        self.usernamelbl.setGeometry(QtCore.QRect(20, 90, 51, 17))
        self.usernamelbl.setObjectName("usernamelbl")
        self.userlnedt = QtWidgets.QLineEdit(Dialog)
        self.userlnedt.setGeometry(QtCore.QRect(120, 80, 113, 27))
        self.userlnedt.setObjectName("userlnedt")
        self.passwdlbl = QtWidgets.QLabel(Dialog)
        self.passwdlbl.setGeometry(QtCore.QRect(20, 140, 81, 20))
        self.passwdlbl.setObjectName("passwdlbl")
        self.passwdlnedit = QtWidgets.QLineEdit(Dialog)
        self.passwdlnedit.setGeometry(QtCore.QRect(120, 130, 113, 27))
        self.passwdlnedit.setObjectName("passwdlnedit")

        self.retranslateUi(Dialog)
        self.buttonBox.accepted.connect(Dialog.accept)
        self.buttonBox.rejected.connect(Dialog.reject)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "登陆mysql"))
        self.hostlnedt.setText(_translate("Dialog", "localhost"))
        self.hostlbl.setText(_translate("Dialog", "HOST地址"))
        self.usernamelbl.setText(_translate("Dialog", "用户名"))
        self.passwdlbl.setText(_translate("Dialog", "数据库密码"))

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi2(Dialog)
    Dialog.show()
    sys.exit(app.exec_())

(四)窗口二:

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog3(object):
    def setupUi3(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 296)
        self.dialogButtonBox = QtWidgets.QDialogButtonBox(Dialog)
        self.dialogButtonBox.setGeometry(QtCore.QRect(190, 240, 181, 32))
        self.dialogButtonBox.setOrientation(QtCore.Qt.Horizontal)
        self.dialogButtonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
        self.dialogButtonBox.setObjectName("dialogButtonBox")
        self.author = QtWidgets.QLabel(Dialog)
        self.author.setGeometry(QtCore.QRect(40, 20, 191, 17))
        self.author.setObjectName("author")
        self.email = QtWidgets.QLabel(Dialog)
        self.email.setGeometry(QtCore.QRect(40, 50, 271, 17))
        self.email.setObjectName("email")
        self.github = QtWidgets.QLabel(Dialog)
        self.github.setGeometry(QtCore.QRect(40, 80, 351, 17))
        self.github.setObjectName("github")
        self.GPL = QtWidgets.QLabel(Dialog)
        self.GPL.setGeometry(QtCore.QRect(40, 110, 161, 17))
        self.GPL.setObjectName("GPL")

        self.retranslateUi(Dialog)
        self.dialogButtonBox.accepted.connect(Dialog.accept)
        self.dialogButtonBox.rejected.connect(Dialog.reject)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.author.setText(_translate("Dialog", "作者:陈严肃"))
        self.email.setText(_translate("Dialog", "联系邮箱:aschenyansu@foxmail.com"))
        self.github.setText(_translate("Dialog", "github: https://github.com/chenyansu/pyspidergui"))
        self.GPL.setText(_translate("Dialog", "本软件遵循GPL v2协议"))

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog3 = QtWidgets.QDialog()
    ui3 = Ui_Dialog()
    ui3.setupUi(Dialog3)
    Dialog3.show()
    sys.exit(app.exec_())

当我们通过pyqt开发时,eric6为我们提供了一个方便的工具:图形化的绘制UI工具--qt designer。

我们可以通过它开发多个UI,然后利用信号-槽工具,将功能代码附着在上面。也可以将多个界面连接起来。

接下来,我要提供将多个UI链接起来的思路。

一:讲解:qt designer 自动生成的代码是怎样运行的:

(一)组成

qt desinger自动生成的代码为一个对象和对象启动命令,对象中包含两个函数,setupUi()和retranslateUi()。

形如这样:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
 
from ... import ....
class someclassname(object):
def setupUi():
...
def retranslateUi():
...
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
 
 

(二)运行方式:

(1)两个函数setupUI和retranslateUi负责绘制Ui,其中setupUI会调用retranslateUi。

(2)if __name__ = "__main__" 及以后的语句是python的主程序运行

app = QtWidgets.QApplication(sys.argv)
......
sys.exit(app.exec_())

上面两句为pyqt主程序运行通用语句

(3)

 
1
2
3
 
 
 
Dialog = QtWidgets.QDialog()# 获取窗口类型实例
ui = someclassname()# 取得ui的class实例
ui.setupUi(Dialog) # 将ui实例绘制到窗口实例上
 
 

(4)

 
1
 
 
 
Dialog.show() # 展示窗口
 
 

二:如何组合窗口

(一)首先,建立一个主程序的python文件,然后各种import

(1)基本引用

import sys
from PyQt5 import QtCore, QtGui, QtWidgets

(2)文件引用:引用各个Ui的py文件的class

(二)实例化启动qt应用

 
1
 
 
 
app=QtWidgets.QApplication(sys.argv)
 
 

(三)实例化各种窗口,方式如1.2.3 中的三个语句,例如:

!!!!注意,修改对应相关ui的py文件的变量名函数名避免冲突!!!!!!!

(1)主窗口

 
1
2
3
 
 
 
ChenSpider = QtWidgets.QMainWindow()
ui = Ui_ChenSpider()
ui.setupUi(ChenSpider)
 
 

(2)弹出窗口1

 
1
2
3
 
 
 
Dialog = QtWidgets.QDialog()
ui2 = Ui_Dialog()
ui2.setupUi2(Dialog)
 
 

(3)弹出窗口2

 
1
2
3
 
 
 
Dialog3 = QtWidgets.QDialog()
ui3 = Ui_Dialog3()
ui3.setupUi3(Dialog3)
 
 

(四) 将弹出窗口绑定在主窗口某个按钮上

例子中,将主窗口chenSpider的loginmysqlbttn按钮绑定在窗口1上,aboutbttn绑定在窗口2上,点击弹出

 
1
2
 
 
 
bttn = ui.loginmysqlbttn
bttn.clicked.connect(Dialog.show)
 
 
 
1
2
 
 
 
bttn2 = ui.aboutbttn
bttn2.clicked.connect(Dialog3.show)
 
 

(五) 启动

 
1
2
3
4
 
 
 
if __name__ == "__main__":
ChenSpider.show()
sys.exit(app.exec_())
 
 
 

三:完整代码

(一)主文件(请运行此文件)

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
 
 
importsys
fromPyQt5importQtCore,QtGui,QtWidgets
fromUi_main_WindowimportUi_ChenSpider
fromUi_mysqlloginimportUi_Dialog
fromUi_aboutimportUi_Dialog3
 
#part1
#实例化启动qt应用
app=QtWidgets.QApplication(sys.argv)
#将chenSpider设为主窗口实例
ChenSpider=QtWidgets.QMainWindow()
#取得UIclass的实例
ui=Ui_ChenSpider()
#将UI应用到主窗口chenSpider上
ui.setupUi(ChenSpider)
#part2登录mysql
Dialog=QtWidgets.QDialog()
ui2=Ui_Dialog()
ui2.setupUi2(Dialog)
#part3关于界面
Dialog3=QtWidgets.QDialog()
ui3=Ui_Dialog3()
ui3.setupUi3(Dialog3)
 
#part4
#设计信号-槽点
#建立对象实例化的访问
bttn=ui.loginmysqlbttn
bttn.clicked.connect(Dialog.show)
 
bttn2=ui.aboutbttn
bttn2.clicked.connect(Dialog3.show)
 
if__name__=="__main__":
#展示主窗口chenSpider
ChenSpider.show()
sys.exit(app.exec_())
 
 

(二)主窗口代码

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
 
 
fromPyQt5importQtCore,QtGui,QtWidgets
 
classUi_Dialog3(object):
defsetupUi3(self,Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(400,296)
self.dialogButtonBox=QtWidgets.QDialogButtonBox(Dialog)
self.dialogButtonBox.setGeometry(QtCore.QRect(190,240,181,32))
self.dialogButtonBox.setOrientation(QtCore.Qt.Horizontal)
self.dialogButtonBox.setStandardButtons(QtWidgets
    .QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.dialogButtonBox.setObjectName("dialogButtonBox")
self.author=QtWidgets.QLabel(Dialog)
self.author.setGeometry(QtCore.QRect(40,20,191,17))
self.author.setObjectName("author")
self.email=QtWidgets.QLabel(Dialog)
self.email.setGeometry(QtCore.QRect(40,50,271,17))
self.email.setObjectName("email")
self.github=QtWidgets.QLabel(Dialog)
self.github.setGeometry(QtCore.QRect(40,80,351,17))
self.github.setObjectName("github")
self.GPL=QtWidgets.QLabel(Dialog)
self.GPL.setGeometry(QtCore.QRect(40,110,161,17))
self.GPL.setObjectName("GPL")
 
self.retranslateUi(Dialog)
self.dialogButtonBox.accepted.connect(Dialog.accept)
self.dialogButtonBox.rejected.connect(Dialog.reject)
QtCore.QMetaObject.connectSlotsByName(Dialog)
 
defretranslateUi(self,Dialog):
_translate=QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog","Dialog"))
self.author.setText(_translate("Dialog","作者:陈严肃"))
self.email.setText(_translate("Dialog"
    ,"联系邮箱:aschenyansu@foxmail.com"))
self.github.setText(_translate("Dialog","github:https://github
    .com/chenyansu/pyspidergui"))
self.GPL.setText(_translate("Dialog","本软件遵循GPLv2协议"))
 
 
if__name__=="__main__":
importsys
app=QtWidgets.QApplication(sys.argv)
Dialog3=QtWidgets.QDialog()
ui3=Ui_Dialog()
ui3.setupUi(Dialog3)
Dialog3.show()
sys.exit(app.exec_())
 
 
 

(三)窗口一:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
 
 
fromPyQt5importQtCore,QtGui,QtWidgets
 
classUi_Dialog(object):
defsetupUi2(self,Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(480,297)
self.buttonBox=QtWidgets.QDialogButtonBox(Dialog)
self.buttonBox.setGeometry(QtCore.QRect(260,240,181,32))
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox
    .Cancel|QtWidgets.QDialogButtonBox.Ok)
self.buttonBox.setObjectName("buttonBox")
self.hostlnedt=QtWidgets.QLineEdit(Dialog)
self.hostlnedt.setGeometry(QtCore.QRect(120,20,113,27))
self.hostlnedt.setObjectName("hostlnedt")
self.hostlbl=QtWidgets.QLabel(Dialog)
self.hostlbl.setGeometry(QtCore.QRect(20,26,81,21))
self.hostlbl.setObjectName("hostlbl")
self.usernamelbl=QtWidgets.QLabel(Dialog)
self.usernamelbl.setGeometry(QtCore.QRect(20,90,51,17))
self.usernamelbl.setObjectName("usernamelbl")
self.userlnedt=QtWidgets.QLineEdit(Dialog)
self.userlnedt.setGeometry(QtCore.QRect(120,80,113,27))
self.userlnedt.setObjectName("userlnedt")
self.passwdlbl=QtWidgets.QLabel(Dialog)
self.passwdlbl.setGeometry(QtCore.QRect(20,140,81,20))
self.passwdlbl.setObjectName("passwdlbl")
self.passwdlnedit=QtWidgets.QLineEdit(Dialog)
self.passwdlnedit.setGeometry(QtCore.QRect(120,130,113,27))
self.passwdlnedit.setObjectName("passwdlnedit")
 
self.retranslateUi(Dialog)
self.buttonBox.accepted.connect(Dialog.accept)
self.buttonBox.rejected.connect(Dialog.reject)
QtCore.QMetaObject.connectSlotsByName(Dialog)
 
defretranslateUi(self,Dialog):
_translate=QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog","登陆mysql"))
self.hostlnedt.setText(_translate("Dialog","localhost"))
self.hostlbl.setText(_translate("Dialog","HOST地址"))
self.usernamelbl.setText(_translate("Dialog","用户名"))
self.passwdlbl.setText(_translate("Dialog","数据库密码"))
 
 
if__name__=="__main__":
importsys
app=QtWidgets.QApplication(sys.argv)
Dialog=QtWidgets.QDialog()
ui=Ui_Dialog()
ui.setupUi2(Dialog)
Dialog.show()
sys.exit(app.exec_())
 
 

(四)窗口二:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
 
 
fromPyQt5importQtCore,QtGui,QtWidgets
 
classUi_Dialog3(object):
defsetupUi3(self,Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(400,296)
self.dialogButtonBox=QtWidgets.QDialogButtonBox(Dialog)
self.dialogButtonBox.setGeometry(QtCore.QRect(190,240,181,32))
self.dialogButtonBox.setOrientation(QtCore.Qt.Horizontal)
self.dialogButtonBox.setStandardButtons(QtWidgets
    .QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.dialogButtonBox.setObjectName("dialogButtonBox")
self.author=QtWidgets.QLabel(Dialog)
self.author.setGeometry(QtCore.QRect(40,20,191,17))
self.author.setObjectName("author")
self.email=QtWidgets.QLabel(Dialog)
self.email.setGeometry(QtCore.QRect(40,50,271,17))
self.email.setObjectName("email")
self.github=QtWidgets.QLabel(Dialog)
self.github.setGeometry(QtCore.QRect(40,80,351,17))
self.github.setObjectName("github")
self.GPL=QtWidgets.QLabel(Dialog)
self.GPL.setGeometry(QtCore.QRect(40,110,161,17))
self.GPL.setObjectName("GPL")
 
self.retranslateUi(Dialog)
self.dialogButtonBox.accepted.connect(Dialog.accept)
self.dialogButtonBox.rejected.connect(Dialog.reject)
QtCore.QMetaObject.connectSlotsByName(Dialog)
 
defretranslateUi(self,Dialog):
_translate=QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog","Dialog"))
self.author.setText(_translate("Dialog","作者:陈严肃"))
self.email.setText(_translate("Dialog"
    ,"联系邮箱:aschenyansu@foxmail.com"))
self.github.setText(_translate("Dialog","github:https://github
    .com/chenyansu/pyspidergui"))
self.GPL.setText(_translate("Dialog","本软件遵循GPLv2协议"))
 
 
if__name__=="__main__":
importsys
app=QtWidgets.QApplication(sys.argv)
Dialog3=QtWidgets.QDialog()
ui3=Ui_Dialog()
ui3.setupUi(Dialog3)
Dialog3.show()
sys.exit(app.exec_())
 
 
 

pyqt5 在qt designer后以弹窗的方式连接多个UI图形界面的更多相关文章

  1. pyqt5通过qt designer 设计方式连接多个UI图形界面

    当我们通过pyqt开发时,eric6为我们提供了一个方便的工具:图形化的绘制UI工具--qtdesigner.我们可以通过它开发多个UI,然后利用信号-槽工具,将功能代码附着在上面.也可以将多个界面连 ...

  2. Win10安装PyQt5与Qt Designer【转】

    https://blog.csdn.net/u011342224/article/details/78879633 1.直接在cmd中通过pip安装PyQt5 1 pip install pyqt5 ...

  3. Win10安装PyQt5与Qt Designer

    1.直接在cmd中通过pip安装PyQt5 1 pip install pyqt5 会自动下载PyQt5以及sip并安装,因为PyQt5不再提供Qt Designer等工具,所以需要再安装pyqt5- ...

  4. python的部分GUI模块简介tkinter、pyqt5(Qt Designer)

    笔者认为,这两个作为Python3较为常用且简单的GUI模块,是Python开发者所必须学习至少是了解的. 其中tkinter为Python3自带的GUI模块,而pyqt5则需要通过pip insta ...

  5. 第15.11节 PyQt(Python+Qt)入门学习:Qt Designer(设计师)组件Property Editor(属性编辑)界面中主窗口QMainWindow类相关属性详解

    概述 主窗口对象是在新建窗口对象时,选择main window类型的模板时创建的窗口对象,如图: 在属性编辑界面中,主窗口对象与QMainWindow相关的属性包括:iconSize.toolButt ...

  6. PyQt5 & Qt Designer使用小结

    开始在知乎写文章的原因,主要还是想整理平时的经验,方便自己以后查看,有机会的话大家也可以交流吧. 11月中旬由于项目需要,和另一名实习生负责使用Python开发一个数据分析的小软件. 虽然才开始接触Q ...

  7. 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子

      本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...

  8. 痞子衡嵌入式:超级好用的可视化PyQt GUI构建工具(Qt Designer)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PyQt GUI构建工具Qt Designer. 痞子衡开博客至今已有好几年,一直以嵌入式开发相关主题的文章为主线,偶尔穿插一些其他技术 ...

  9. 利用Eric+Qt Designer编写倒计时时钟

    [前言]前几日通过编写命令行通讯录,掌握了Python的基本语法结构,于是开始向更高水平冲击,利用Eric与Qt Designer 编写一个带界面的小程序.本次实操中也确实遇到了不少问题,通过学习也都 ...

随机推荐

  1. ACL2016信息抽取与知识图谱相关论文掠影

    实体关系推理与知识图谱补全 Unsupervised Person Slot Filling based on Graph Mining 作者:Dian Yu, Heng Ji 机构:Computer ...

  2. Log POST Data in Nginx

    先编译Nginx的echo module: ./configure --add-module=./echo-nginx-module-0.54 make make install 可以在github上 ...

  3. 【Selenium】Selenium IDE(alt+ctrl+s)

    ttp://www.yiibai.com/selenium/selenium_ide_tool_features.html     学习 Selenium IDE安装 http://seleniumh ...

  4. asp.net core 教程(七)-异常处理、静态文件

    Asp.Net Core-异常处理 Asp.Net Core-异常处理 在这一章,我们将讨论异常和错误处理.当 ASP.NET Core应用程序中发生错误时,您可以以各种不同的方式来处理.让我们来看看 ...

  5. 正确地缩写 document.querySelector

    北京的夕阳,伴随淡淡的霾殇.从写字楼望去,光线是那么昏黄.没有孤雁,也没有霞光,遥想当年,还是 jQuery 独霸一方.那时的我们,写程序都习惯了使用 $,至少在对美元符号的喜爱上,与 PHP 达成了 ...

  6. centOS6.4安装python3.5,并且安装pip

    前言: 如果你也是用的centos系统,打算装python3.0以上版本,再装python下载工具pip,那么恭喜你,你可能也会像我一样遇到各种各样的问题! 另外非常重要的一点:centos都会自带p ...

  7. Qt使用MySQL笔记一

    原始日期:2015-08-20 18:01 今天开发项目时,遇到一个问题,经过自己不断尝试,终于找到了解决办法,于是赶紧记下来,不然过段时间可能又忘了呵呵,从而重蹈覆辙,浪费时间~问题是这样的:在插入 ...

  8. DocNan博文目录

    算法 时频分析:窗口傅立叶变换 数学误区:乘积的求和 MHD simulation with python Linux Linux: Bash基本命令 Linux: 安装和启用firefox浏览器的j ...

  9. 如何退出 Vim

    点击 Esc 键,; Vim 进入命令模式.然后输入: :q  退出(这是 :quit 的缩写) :q! 不保存退出(这是  :quit! 的缩写) :wq 写入文件并退出:(这是 :writequi ...

  10. HBuilder使用方法

    /*注:本教程针对HBuilder5.0.0,制作日期2014-12-31*/创建HTML结构: h 8 (敲h激活代码块列表,按8选择第8个项目,即HTML代码块,或者敲h t Enter)中途换行 ...