PyQt5 Toolbar addWidget 添加控件
实现工具栏添加下拉框,日期编辑框,相关控件。
效果图:
代码:
# -*- coding: utf-8 -*- import sys from PyQt5 import QtGui, QtCore, QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QLabel, QComboBox, QSpinBox class MainWindow(QMainWindow): def __init__(self,parent=None): super(MainWindow,self).__init__(parent) self.setWindowTitle(self.tr("ToolBar_addWidget")) self.resize(500, 200) #调试显示文本框 self.textEdit = QTextEdit() self.textEdit.setReadOnly(True) self.setCentralWidget(self.textEdit) #添加工具栏到MainWindow self.toolBar = self.addToolBar("测试") self.label1 = QLabel(self.tr("下拉框:")) ##下拉框 self.comBox = QComboBox() self.comBox.insertItem(0, self.tr("ComboBox0")) self.comBox.insertItem(1, self.tr("ComboBox1")) self.comBox.insertItem(2, self.tr("ComboBox2")) self.label2 = QLabel(self.tr("设定框:")) ##微调框 self.spin = QSpinBox() self.spin.setRange(-10,10) ##日期编辑框 self.dateTimeEdit = QtWidgets.QDateTimeEdit() self.dateTimeEdit.setGeometry(QtCore.QRect(138, 46, 200, 20)) font = QtGui.QFont() font.setPointSize(10) font.setWeight(75) self.dateTimeEdit.setFont(font) self.dateTimeEdit.setDateTime(QtCore.QDateTime(QtCore.QDate(2020, 1, 1), QtCore.QTime(3, 2, 3))) self.dateTimeEdit.setDisplayFormat(self.tr("yyyy-MM-dd hh:mm:ss")) self.dateTimeEdit.setCalendarPopup(True) #添加到工具栏 self.toolBar.addWidget(self.label1) self.toolBar.addWidget(self.comBox) self.toolBar.addSeparator() #分隔号 self.toolBar.addWidget(self.label2) self.toolBar.addWidget(self.spin) self.toolBar.addSeparator() self.toolBar.addWidget(self.dateTimeEdit) #槽连接 self.comBox.activated.connect(self.ComboBoxSlot) self.spin.valueChanged.connect(self.SpinBoxSlot) self.dateTimeEdit.dateTimeChanged.connect(self.dateTimeEditSlot) def ComboBoxSlot(self): self.textEdit.setText(str(self.comBox.currentIndex())) def SpinBoxSlot(self): self.textEdit.setText(str(self.spin.value())) def dateTimeEditSlot(self): self.textEdit.setText(self.dateTimeEdit.dateTime().toString("yyyy-MM-dd hh:mm:ss")) if __name__ == "__main__": app=QApplication(sys.argv) main=MainWindow() main.show() app.exec_()