介绍提示
多控件可以存在列表中
小编给大家分享一下PyQt怎么创建自定义QWidget,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
开发环境
Win7 PyCharm Python3.5.1 PyQt5
主要文件:
|——, main.py | - - - res |,”——fish.jpg ”——ui ,,,app_widget.py
主要。py
import 系统 得到PyQt5.QtWidgets import  QApplication 得到ui.app_widget import  AppQWidget if __name__ ==, & # 39; __main__ # 39;:=,,app  QApplication (sys.argv)=,,w  AppQWidget () ,w.show () ,sys.exit (app.exec_ ())
app_main_window。py
自定义了一个居中显示的窗口,关闭时弹确认框
得到PyQt5.QtCore import QCoreApplication 得到PyQt5.QtGui import  QIcon 得到PyQt5.QtWidgets import  QWidget, QPushButton,, QDesktopWidget, QMessageBox class AppQWidget (QWidget): ,“““ ,A custom  QWidget by  Rust 费舍尔 ,“““ 自我,def __init__ (): 超级才能(). __init__ () self.init_ui才能() ,def init_ui(自我): #,才能self.setGeometry(300,, 300,, 400,, 200), #,相当于移动和调整大小 self.resize才能(300,,200) self.move_to_center才能() self.setWindowTitle才能(& # 39;Demo1& # 39;) self.setWindowIcon才能(QIcon (& # 39; res/fish.jpg& # 39;)) btn1 才能=,QPushButton(& # 39;退出# 39;,,自我) btn1.setToolTip才能(& # 39;Click 用退出# 39;) btn1.resize才能(btn1.sizeHint ()) btn1.move才能(200,,150) btn1.clicked.connect才能(QCoreApplication.instance () .quit), #, cannot locate function 连接 ,def closeEvent(自我,事件): reply 才能=,QMessageBox.question(自我,,& # 39;消息# 39;, ,,,,,,,,,& # 39;断开连接;你sure 用quit 现在? & # 39; ,,,,,,,,,QMessageBox.Yes |, QMessageBox.No, ,,,,,,,,,QMessageBox.No) if 才能;reply ==, QMessageBox.Yes: ,,event.accept () 其他的才能: ,,event.ignore () ,def move_to_center(自我): 时间=qr 才能;self.frameGeometry () cp 才能=,QDesktopWidget () .availableGeometry () .center (), #, got center info 这里 qr.moveCenter才能(cp) self.move才能(qr.topLeft()), #,应用窗口的左上方的点到qr矩形的左上方的点,因此居中显示在我们的屏幕上
提示
多控件可以存在列表中
存在一起,需要对整体操作时直接遍历列表
, #,同组的控件可以存在同一个列表中 ,self.cb_list =, ( self.ma.i2cCB才能, self.ma.mipiCB才能, self.ma.eepromCB才能, self.ma.tem_sensorCB才能, self.ma.lensCB才能, self.ma.vcmCB才能, self.ma.mirrorCB才能, self.ma.mirrorCaliCB才能,,) ,self.test_count_et_list =, ( self.ma.i2cCountEt才能, self.ma.mipiCountEt才能, self.ma.eepromCountEt才能, self.ma.tem_sensorCountEt才能, self.ma.lensCountEt才能, self.ma.vcmCountEt才能, self.ma.mirrorCountEt才能, self.ma.mirrorCaliCountEt才能, ,) #,需要操作某组控件时,直接遍历列表 def _click_test_item_cb(自我): “““大敌;Update (choose all 复选框),by all test item state “““ choose_all =, True ,for cb  self.cb_list拷贝: 时间=choose_all 才能;choose_all ,, cb.isChecked () 之前,self.ma.selecteAllCB.setChecked (choose_all) >QApplication与QWidget
QApplication是一个单例,在QWidget中可以通过QApplication.instance()获取到对象
实际上在实例化QApplication前就使用QtGui.QWidget()是会报错的
在祝辞祝辞,QtGui.QWidget () QWidget: Must construct  a QApplication before a QPaintDevice参考QApplication如何()和QWidget()对象连接在PySide/PyQt吗?
在我们自定义的QMainWindow中,也可以直接获取到QApplication的实例。
class RustMainWindow (QMainWindow): “““大敌;却;能够is 从而main class “““ ,def _trigger_english(自我): print 才能“Change 用English",, QApplication.instance () #,Change 用English & lt; PyQt4.QtGui.QApplication object at 0 x02abe3a0>PyQt怎么创建自定义QWidget