Pyqt5_窗口实例化、部件
Pyqt5部件
一、窗口实例化
if __name__ == '__main__':
#创建app
app = QApplication(sys.argv)
#主窗口实例化
main = QMainWindow()
main_ui = Ui_MainWindow()
main_ui.setupUi(main)
#子窗口实例化
chi = QDialog()
chi_ui = Ui_Dialog()
chi_ui.setupUi(chi)
#显示
main.show()
sys.exit(app.exec_())
二、信号与槽
发出信号,执行槽函数
常用信号:Clicked 鼠标左键点击并释放触发该信号
内置信号和槽函数
self.pushButton.clicked.connect(self.close)
三、基本控件
1、单选按钮
QRadioButton单选按钮 多选一
self.radioButton.setObjectName("radioButton")
self.radioButton.setText(_translate("Form", "单选按钮"))
self.okButton.setText(_translate("Form", "确定"))
self.okButton.clicked.connect(self.checkRadioButton)
#self.radioButton.isChecked()选中为True
if self.radioButton.isChecked():
QMessageBox.information(self,"消息框标题","RadioButton被选中",QMessageBox.Yes | QMessageBox.No)
2、复选框
QCheckBox复选框 多选多
#self.bearcheckBox.isChecked()选中为True
if self.freshcheckBox.isChecked() and self.bearcheckBox.isChecked():
QMessageBox.information(self,"消息框标题","两个都选",QMessageBox.Yes | QMessageBox.No)
3、下拉框
QComboBox 下拉框
self.comboBox = QtWidgets.QComboBox(Form)
self.comboBox.setObjectName("comboBox")
#self.comboBox.currentText() 下拉框选择值
select_value = self.comboBox.currentText()
QMessageBox.information(self,"消息框标题","你选择了%s" % (select_value,),QMessageBox.Yes | QMessageBox.No)
4、文本框
#单行QLineEdit
setText() 设置单行文本框内容
Text() 获取文本框内容
clear() 清除文本框内容
#多行 QTextEdit
setPlainText() 设置单行文本框内容
toPlainText() 返回文本框内容
clear() 清除文本框内容
self.lineEdit.setObjectName("lineEdit") self.lineEdit.setObjectName("lineEdit")
self.textEdit = QtWidgets.QTextEdit(Form)
self.lineEdit.setObjectName("lineEdit")
#设置前先清除文本内容
self.lineEdit.clear()
self.textEdit.clear()
#设置文本框内容
self.lineEdit.setText("Lineedit contents")
self.textEdit.setPlainText("Textedit contents")
#获取文本框内容,并弹框显示内容
str1 = self.lineEdit.text()
str2 = self.textEdit.toPlainText()
QMessageBox.information(self,"获取信息","LineEdit文本框内容为:%s,TextEdit文本框内容为:%s" %(str1,str2))
5、消息弹出
QMessageBox弹出对话框
QMessageBox.information(self, '信息提示对话框','前方右拐',QMessageBox.Yes | QMessageBox.No,QMessageBox.Yes)
QMessageBox.question(self, "提问对话框", "你要继续搞测试吗?", QMessageBox.Yes | QMessageBox.No)
QMessageBox.warning(self, "警告对话框", "继续执行会导致系统重启,你确定要继续?", QMessageBox.Yes | QMessageBox.No)
QMessageBox.critical(self, "严重错误对话框", "数组越界,程序异常退出", QMessageBox.Yes | QMessageBox.No,)
QMessageBox.about(self, "关于对话框", "你的Windows系统是DOS1.0")
result = QMessageBox.question(self, "提问对话框", "你要继续搞测试吗?", QMessageBox.Yes | QMessageBox.No)
#NO的返回值65536 QMessageBox.NO = 65536 YES返回值其他
if result==QMessageBox.Yes:
print('OK')
else:
print('No')
6、内置对话框
QinputDialog标准对话框
self.getIntButton.clicked.connect(self.getInt)
self.getStrButton.clicked.connect(self.getStr)
self.getItemButton.clicked.connect(self.getItem)
def getInt(self):
num, ok = QInputDialog.getInt(self, 'Integer input dialog', '输入数字')
if ok and num:
self.GetIntlineEdit.setText(str(num))
def getStr(self):
text, ok=QInputDialog.getText(self, 'Text Input Dialog', '输入姓名:')
if ok and text:
self.GetstrlineEdit.setText(str(text))
def getItem(self):
items=('C', 'C++', 'C#', 'JAva', 'Python')
item, ok=QInputDialog.getItem(self, "select input dialog", '语言列表', items, 0, False)
if ok and item:
self.GetItemlineEdit.setText(str(item))
该信号与槽部分内容转载自
[ PyQt入门教程 ] PyQt5基本控件使用:单选按钮、复选框、下拉框、文本框 - 锅边糊 - 博客园 (cnblogs.com)
7、表格

# QTableWidgetItem是PyQt5.QtWidgets中的一个模块,不导入会出错
from PyQt5.QtWidgets import *
#设置表格头伸缩格式
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
#表格禁止编辑
self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
#设置表格整行选中 SelectColumns 列 SelectItems 选中1个单元格
self.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)
#表头存在 表头加粗
self.tableWidget.horizontalHeader().setVisible(True)
font = self.tableWidget.horizontalHeader().font()
font.setBold(True)
#添加内容
items = [['Akam','21','Male','doc'],['Bize','21','Male','txt']]
for i in range(len(items)):
item = items[i]
#获取行数
row = self.tableWidget.rowCount()
#插入行
self.tableWidget.insertRow(row)
for j in range(len(item)):
#单元格元素添加
item = QTableWidgetItem(str(items[i][j]))
self.tableWidget.setItem(row,j,item)

pyqt5结合designer,窗口实例化、各组件使用方法
浙公网安备 33010602011771号