📜  PyQt-基本小部件(1)

📅  最后修改于: 2023-12-03 15:03:55.931000             🧑  作者: Mango

PyQt-基本小部件

PyQt是一种Python编程语言的GUI(tool kit),其中包含了很多基本小部件,如QPushButton,QLabel,QLineEdit。这些小部件可用于快速构建一个用户友好的GUI应用程序。

QLabel

QLabel是PyQt中最基本的小部件之一,它是文本或图像的静态显示组件。

from PyQt5.QtWidgets import QApplication, QLabel, QWidget

app = QApplication([])
window = QWidget()
label = QLabel('Hello PyQt5!', window)
window.show()
app.exec_()

这个小程序将创建一个带有"Hello PyQt5!"标签的窗口。QApplication处理GUI应用程序事件循环。QWidget是使用QWidget作为父窗口创建的一个小部件。使用QLabel创建标签,将标签添加到QWidget小部件中,然后显示QWidget和QApplication开始事件循环。

QPushButton

按钮小部件是通常用于触发应用程序的操作。

from PyQt5.QtWidgets import QApplication, QLabel, QPushButton, QVBoxLayout, QWidget

app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
button = QPushButton('Click')

def on_button_click():
    label.setText('Button clicked')

button.clicked.connect(on_button_click)
layout.addWidget(button)
label = QLabel(window)
layout.addWidget(label)
window.setLayout(layout)
window.show()
app.exec_()

在这个例子中,使用了QVBoxLayout用于布局QPushButton和QLabel。QLabel仅用作显示的简单文本标签,按钮小部件使用clicked.connect连接到on_button_click方法,当按钮被点击时,将会将标签设为“Button clicked”。

QCheckBox

QCheckBox 是用于提供用户选择的勾选框。

from PyQt5.QtWidgets import QApplication, QCheckBox, QLabel, QVBoxLayout, QWidget

app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
check_box = QCheckBox('Check me!')

def on_check_box_toggle(state):
    label.setText(f'CheckBox state: {state}')

check_box.stateChanged.connect(on_check_box_toggle)
layout.addWidget(check_box)
label = QLabel(window)
layout.addWidget(label)
window.setLayout(layout)
window.show()
app.exec_()

这个例子使用QCheckBox和QLabel小部件。 当用户点击勾选框时,将会调用on_check_box_toggle方法。这种方法将更新标签文本,显示勾选框的状态。

QRadioButton

QRadioButton是一个不同于QCheckBox的单选组件。

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QRadioButton, QHBoxLayout, QLabel, QWidget

app = QApplication([])
window = QWidget()
layout = QHBoxLayout()
label = QLabel(window)
layout.addWidget(label)

def on_radio_button_toggle():
    radio_button = app.sender()
    if radio_button.isChecked():
        label.setText(f'You selected: {radio_button.text()}')

radio_button_1 = QRadioButton('Radio button 1')
radio_button_1.toggled.connect(on_radio_button_toggle)
layout.addWidget(radio_button_1)

radio_button_2 = QRadioButton('Radio button 2')
radio_button_2.toggled.connect(on_radio_button_toggle)
layout.addWidget(radio_button_2)

window.setLayout(layout)
window.show()
app.exec_()

通过使用QRadioButton方法,并将toggled信号连接到on_radio_button_toggle方法中,可以轻松地进行单选操作。

在这个例子中,当单选按钮状态发生改变时,将会更新标签文本。

QLineEdit

QLineEdit是一个简单的文本框小部件,用于允许用户输入文本。

from PyQt5.QtWidgets import QApplication, QLabel, QLineEdit, QVBoxLayout, QWidget

app = QApplication([])
window = QWidget()
layout = QVBoxLayout()

def on_text_changed(text):
    label.setText(text)

line_edit = QLineEdit()
line_edit.textChanged.connect(on_text_changed)
layout.addWidget(line_edit)

label = QLabel(window)
layout.addWidget(label)

window.setLayout(layout)
window.show()
app.exec_()

使用 QLineEdit 和 QLabel 小部件,通过textChanged信号监听文本框中的文本变化。 当用户输入文本时,on_text_changed方法将会更新标签的文本。

总结

通过此处给出的小片段代码,可快速创建出一个简单的GUI应用程序,包含了按钮,标签,单选和复选框以及文本框等一些基本部件。这些小部件可用于更好的用户交互和显示。