布局
tab1 = QtWidgets.QWidget()
tab1_layout = QtWidgets.QHBoxLayout()
tab1_layout.addWidget(button)
tab1.setLayout(tab1_layout)
tab1 = QtWidgets.QWidget()
tab1_layout = QtWidgets.QVBoxLayout()
tab1.setLayout(tab1_layout)
QGridLayout
- 在网格中组织小部件。python
self.tab1_gridLayout = QtWidgets.QGridLayout()
self.tab1_gridLayout.setHorizontalSpacing(30)
self.tab1_gridLayout.setVerticalSpacing(30)
self.tab1_gridLayout.setContentsMargins(30, 30, 30, 30)
self.tab1_lable_pc_ip = QtWidgets.QLabel()
self.tab1_gridLayout.addWidget(self.tab1_lable_pc_ip, 0, 0)
self.tab1_lineEdit_pc_ip = QtWidgets.QLineEdit()
self.tab1_gridLayout.addWidget(self.tab1_lineEdit_pc_ip, 1, 0)
tab1_layout.addLayout(self.tab1_gridLayout)
layout = QFormLayout()
layout.addRow("姓名:", QLineEdit())
layout.addRow("年龄:", QLineEdit())
emailLabel = QLabel("邮箱:")
emailField = QLineEdit()
layout.addRow(emailLabel, emailField)
acceptTermsCheckBox = QCheckBox("我接受条款和条件")
layout.addRow("", acceptTermsCheckBox)
submitButton = QPushButton("提交")
layout.addRow("", submitButton)
self.setLayout(layout)
常用控件
font = QFont()
font.setPointSize(12)
self.tab1_lable_name = QtWidgets.QLabel()
self.tab1_lable_name.setText("name") # 设置lable名
self.tab1_lable_name.setFont(font) # 设置字体大小
layout.addWidget(self.tab1_lable_name) # 添加到布局
QPushButton
- 命令按钮。python
self.PushButton_run = QPushButton("执行")
self.PushButton_run.setFont(font)
self.PushButton_run.setEnabled(False)
self.PushButton_run.clicked.connect(self.run)
layout.addWidget(self.PushButton_run)
self.button.setStyleSheet("""
QPushButton {
border-radius: 20px; # 设置圆角的大小
background-color: lightblue; # 设置背景色
padding: 6px; # 设置内边距
}
QPushButton:pressed { # 设置按钮被按下时的样式
background-color: darkblue;
}
""")
QRadioButton
- 单选按钮。python
self.RadioButton_1 = QRadioButton('RadioButton_1')
self.RadioButton_1.setChecked(True)
self.RadioButton_1.clicked.connect(self.onRadioButtonClicked)
self.RadioButton_2 = QRadioButton('RadioButton_2')
self.RadioButton_2.clicked.connect(self.onRadioButtonClicked)
layout.addWidget(self.RadioButton_1)
layout.addWidget(self.RadioButton_2)
def onRadioButtonClicked(self):
radioButton = self.sender()
if radioButton.isChecked():
self.label.setText(f"{radioButton.text()} 被选中")
self.cb1 = QCheckBox("选项 1")
self.cb2 = QCheckBox("选项 2")
self.cb1.stateChanged.connect(self.onCheckBoxClicked)
self.cb2.stateChanged.connect(self.onCheckBoxClicked)
layout.addWidget(self.cb1)
layout.addWidget(self.cb2)
def onCheckBoxClicked(self):
result = "已选中:"
if self.cb1.isChecked():
result += "选项 1 "
if self.cb2.isChecked():
result += "选项 2 "
QSlider
- 滑块控件。QProgressBar
- 进度条。QLineEdit
- 单行文本输入框。python
self.lineEdit = QtWidgets.QLineEdit()
self.lineEdit.setText("host_ip:")
self.lineEdit.setFont(font)
self.lineEdit.setPlaceholderText("输入IP,回车结束")
self.lineEdit.textChanged.connect(self.onTextChanged)
self.lineEdit.textEdited.connect(self.onTextChanged)
self.lineEdit.returnPressed.connect(self.onReturnPressed)
layout.addWidget(self.lineEdit)
def onTextChanged(self, text):
print(text)
def onReturnPressed(self):
print(self.lineEdit.text())
QTextEdit
- 多行文本编辑控件。python
self.tab1_TextEdit_reply = QtWidgets.QTextEdit()
self.tab1_TextEdit_reply.setText("reply:")
self.tab1_TextEdit_reply.setFixedHeight(100)
self.tab1_TextEdit_reply.textChanged.connect(self.onTextChanged)
self.tab1_TextEdit_reply.cursorPositionChanged.connect(self.onTextChanged)
self.tab1_TextEdit_reply.selectionChanged.connect(self.onReturnPressed)
self.combo = QComboBox()
self.combo.addItem('选项 1')
self.combo.addItem('选项 2')
self.combo.addItem('选项 3')
self.combo.currentIndexChanged.connect(self.selectionChanged)
def selectionChanged(self, i):
text = self.combo.currentText()
print(f'选中的是: {text}')
QSpinBox
- 数字输入框。QDateEdit
, QTimeEdit
, QDateTimeEdit
- 日期和时间输入控件。scss
self.data_now = QDateEdit()
self.data_now.setDateTime(QtCore.QDateTime.currentDateTime())
高级控件
QTreeWidget
- 显示树形结构数据。python
self.tree_widget = QtWidgets.QTreeWidget()
self.tree_widget.setColumnCount(1)
self.tree_widget.setHeaderLabels(['Name'])
self.root_item = QtWidgets.QTreeWidgetItem(self.tree_widget, "root_item_name")
self.child_item = QtWidgets.QTreeWidgetItem(self.root_item, "child_item_name")
self.root_item.addChild(self.child_item)
self.tree_widget.expandAll()
self.tree_widget.clicked.connect(self.tab2_tree_onClicked)
splitter.addWidget(self.tree_widget)
QListWidget
- 显示列表数据。QTableWidget
- 显示表格数据。python
self.table = QtWidgets.QTableWidget()
self.table.setRowCount(4)
self.table.setColumnCount(3)
self.table.setColumnWidth(0, 100)
self.table.setRowHeight(0, 50)
self.table.setHorizontalHeaderLabels(["列 1", "列 2", "列 3"])
self.table.setItem(0, 0, QtWidgets.QTableWidgetItem(str(device_ip)).setFont(font))
tab1_content_layout.addWidget(self.table)
转载来源:https://juejin.cn/post/7365711904159105050