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)
posted @ 2022-05-20 17:57  Saint_Z  阅读(265)  评论(0)    收藏  举报