主要用到QWidget,QComboBox,QDialog,QTabwidget,QTableWidget,和其他一些常用的控件。
1, QWidget
1), 可以作为独立的界面使用,也可以加到QMainWindow中,self就是QMainWindow
self.from_widget = FormWidget(self)
_widget = QWidget()
_layout = QVBoxLayout(_widget)
_layout.addWidget(self.from_widget)
_layout.addWidget(self.addLogo())
self.setCentralWidget(_widget)
2),作为独立界面,直接实例化之后调用show就可以
3), 注意布局
2,QDialog,QTabwidget配合使用,可以出现如下的效果
self.applyIndex = ApplyWidget()
self.publishIndex = PublishWidget()
self.dataIndex=DataWidget()
self.reportIndex=ReportWidget()
self.addTab(self.applyIndex, u"审批")
self.addTab(self.publishIndex, u"公布")
self.addTab(self.dataIndex,'数据')
self.addTab(self.reportIndex,'报告')
1), 在QDialog中添加元素和QWidget类似
3,QCombo(重点):效果有很多的下拉选项
1), 实例化:depcombo=QComboBox(self)
2), 添加选项:depcombo.addItem('请选择')
3), 定义选择之后发生的事件:depcombo.activated.connect(函数)
4), 当前值:depcombo.currenttext()
5), 当前索引:depcombo.currentindex()
4,QTableWidget
1), 实例化:table=QTableWidget()
2), 设置表头:
self.table.setColumnCount(9)
self.table.setHorizontalHeaderLabels(['姓名', '部门', '工种', '产品','是否经过培训', '数量', '小时数', '状态', '原因'])
3), 添加元素:注意要先设置行数
self.table.setRowCount(len(数据))
self.table.setItem(number, i, QTableWidgetItem(str(数据)))
4), 在table的某个单元格中添加其他空间,比如按钮:
table.setCellWidget(行,列 ,
button)
5),怎么知道点击的按钮的坐标位置呢?
我的方法是,在按钮的点击事件中传入参数 button.clicked.connect(lambda :self.buttonevent(row))
6), 注意:每次只要执行setRowCount, 会删除所有的内容,包括button对象,所以下次需要再次加载时,就需要重新实例化对象
7),从table中取值:table.item(行,列).text()
5), QLineEdit()的回车事件:self.subworkernameLineEdit.returnPressed.connect(self.searchLeader)
Q