From 330504bb5fdee72ab4b203574b64a6f1ddb907b3 Mon Sep 17 00:00:00 2001 From: M11212051 Date: Sun, 5 May 2024 22:31:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E5=82=B3=E6=AA=94=E6=A1=88=E5=88=B0?= =?UTF-8?q?=E3=80=8Cpyqt5/CODE/=E5=85=83=E4=BB=B6=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=AF=84=E4=BE=8B=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyqt5/CODE/元件使用範例/qt0407_QLabel.py | 48 +++++++++++++++ .../元件使用範例/qt0408_DownloadButton.py | 44 ++++++++++++++ pyqt5/CODE/元件使用範例/qt0408_QButton.py | 58 +++++++++++++++++++ pyqt5/CODE/元件使用範例/qt0409_QRadio.py | 47 +++++++++++++++ pyqt5/CODE/元件使用範例/qt0410_QCheckbox.py | 57 ++++++++++++++++++ 5 files changed, 254 insertions(+) create mode 100644 pyqt5/CODE/元件使用範例/qt0407_QLabel.py create mode 100644 pyqt5/CODE/元件使用範例/qt0408_DownloadButton.py create mode 100644 pyqt5/CODE/元件使用範例/qt0408_QButton.py create mode 100644 pyqt5/CODE/元件使用範例/qt0409_QRadio.py create mode 100644 pyqt5/CODE/元件使用範例/qt0410_QCheckbox.py diff --git a/pyqt5/CODE/元件使用範例/qt0407_QLabel.py b/pyqt5/CODE/元件使用範例/qt0407_QLabel.py new file mode 100644 index 0000000..f99ec5e --- /dev/null +++ b/pyqt5/CODE/元件使用範例/qt0407_QLabel.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- + +''' + 【簡介】 + PyQT5中Qlabel範例 + 按住 Alt + N , Alt + P , Alt + O , Alt + C 切換元件控制項 + +''' + +from PyQt5.QtWidgets import * +import sys + +class QlabelDemo(QDialog): + def __init__(self ): + super().__init__() + + self.setWindowTitle('Qlabel 範例') + nameLb1 = QLabel('&Name', self) + nameEd1 = QLineEdit( self ) + nameLb1.setBuddy(nameEd1) + + nameLb2 = QLabel('&Password', self) + nameEd2 = QLineEdit( self ) + nameLb2.setBuddy(nameEd2) + + btnOk = QPushButton('&OK') + btnCancel = QPushButton('&Cancel') + mainLayout = QGridLayout(self) + mainLayout.addWidget(nameLb1,0,0) + mainLayout.addWidget(nameEd1,0,1,1,2) + + mainLayout.addWidget(nameLb2,1,0) + mainLayout.addWidget(nameEd2,1,1,1,2) + + mainLayout.addWidget(btnOk,2,1) + mainLayout.addWidget(btnCancel,2,2) + +def link_hovered(): + print("當滑鼠滑過label-2標籤時,觸發事件。") + +def link_clicked(): + print("當滑鼠點擊label-4標籤時,觸發事件。" ) + +if __name__ == "__main__": + app = QApplication(sys.argv) + labelDemo = QlabelDemo() + labelDemo.show() + sys.exit(app.exec_()) diff --git a/pyqt5/CODE/元件使用範例/qt0408_DownloadButton.py b/pyqt5/CODE/元件使用範例/qt0408_DownloadButton.py new file mode 100644 index 0000000..ac86eae --- /dev/null +++ b/pyqt5/CODE/元件使用範例/qt0408_DownloadButton.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- + +''' + 【簡介】 + PyQt5中QButton範例 + + +''' + +import sys +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * + +class Form(QDialog): + def __init__(self, parent=None): + super(Form, self).__init__(parent) + layout = QVBoxLayout() + + self.btn4= QPushButton("&Download") + self.btn4.setDefault(True) + self.btn4.clicked.connect(lambda:self.whichbtn(self.btn4)) + layout.addWidget(self.btn4) + self.setWindowTitle("Button demo") + + self.setLayout(layout) + + + def btnstate(self): + if self.btn1.isChecked(): + print("button pressed" ) + else: + print("button released" ) + + def whichbtn(self,btn): + print("clicked button is " + btn.text() ) + +if __name__ == '__main__': + app = QApplication(sys.argv) + btnDemo = Form() + btnDemo.show() + sys.exit(app.exec_()) + + diff --git a/pyqt5/CODE/元件使用範例/qt0408_QButton.py b/pyqt5/CODE/元件使用範例/qt0408_QButton.py new file mode 100644 index 0000000..4aaef1b --- /dev/null +++ b/pyqt5/CODE/元件使用範例/qt0408_QButton.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- + +''' + 【簡介】 + PyQt5中QButton範例 + + +''' + +import sys +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * + +class Form(QDialog): + def __init__(self, parent=None): + super(Form, self).__init__(parent) + layout = QVBoxLayout() + + self.btn1 = QPushButton("Button1") + self.btn1.setCheckable(True) + self.btn1.toggle() + self.btn1.clicked.connect(lambda:self.whichbtn(self.btn1) ) + self.btn1.clicked.connect(self.btnstate) + layout.addWidget(self.btn1) + + self.btn2 = QPushButton('image') + self.btn2.setIcon(QIcon(QPixmap("./images/python.png"))) + self.btn2.clicked.connect(lambda:self.whichbtn(self.btn2) ) + layout.addWidget(self.btn2) + self.setLayout(layout) + + self.btn3 = QPushButton("Disabled") + self.btn3.setEnabled(False) + layout.addWidget(self.btn3) + + self.btn4= QPushButton("&Download") + self.btn4.setDefault(True) + self.btn4.clicked.connect(lambda:self.whichbtn(self.btn4)) + layout.addWidget(self.btn4) + self.setWindowTitle("Button demo") + + def btnstate(self): + if self.btn1.isChecked(): + print("button pressed" ) + else: + print("button released" ) + + def whichbtn(self,btn): + print("clicked button is " + btn.text() ) + +if __name__ == '__main__': + app = QApplication(sys.argv) + btnDemo = Form() + btnDemo.show() + sys.exit(app.exec_()) + + diff --git a/pyqt5/CODE/元件使用範例/qt0409_QRadio.py b/pyqt5/CODE/元件使用範例/qt0409_QRadio.py new file mode 100644 index 0000000..6350039 --- /dev/null +++ b/pyqt5/CODE/元件使用範例/qt0409_QRadio.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- + +''' + 【簡介】 + PyQt5中QRadio範例 + + +''' + +import sys +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * + +class Radiodemo(QWidget): + def __init__(self, parent=None): + super(Radiodemo, self).__init__(parent) + layout = QHBoxLayout() + self.btn1 = QRadioButton("Button1") + self.btn1.setChecked(True) + self.btn1.toggled.connect(lambda:self.btnstate(self.btn1)) + layout.addWidget(self.btn1) + + self.btn2 = QRadioButton("Button2") + self.btn2.toggled.connect(lambda:self.btnstate(self.btn2)) + layout.addWidget(self.btn2) + self.setLayout(layout) + self.setWindowTitle("RadioButton demo") + + def btnstate(self,btn): + if btn.text()=="Button1": + if btn.isChecked() == True: + print( btn.text() + " is selected" ) + else: + print( btn.text() + " is deselected" ) + + if btn.text()=="Button2": + if btn.isChecked()== True : + print( btn.text() + " is selected" ) + else: + print( btn.text() + " is deselected" ) + +if __name__ == '__main__': + app = QApplication(sys.argv) + radioDemo = Radiodemo() + radioDemo.show() + sys.exit(app.exec_()) diff --git a/pyqt5/CODE/元件使用範例/qt0410_QCheckbox.py b/pyqt5/CODE/元件使用範例/qt0410_QCheckbox.py new file mode 100644 index 0000000..4a24aca --- /dev/null +++ b/pyqt5/CODE/元件使用範例/qt0410_QCheckbox.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- + +''' + 【簡介】 + PyQt5中QCheckBox範例 + + +''' + +import sys +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * +from PyQt5.QtCore import Qt + +class CheckBoxDemo(QWidget): + + def __init__(self, parent=None): + super(CheckBoxDemo , self).__init__(parent) + + groupBox = QGroupBox("Checkboxes") + groupBox.setFlat( False ) + + layout = QHBoxLayout() + self.checkBox1= QCheckBox("&Checkbox1") + self.checkBox1.setChecked(True) + self.checkBox1.stateChanged.connect( lambda:self.btnstate(self.checkBox1) ) + layout.addWidget(self.checkBox1) + + self.checkBox2 = QCheckBox("Checkbox2") + self.checkBox2.toggled.connect( lambda:self.btnstate(self.checkBox2) ) + layout.addWidget(self.checkBox2) + + self.checkBox3 = QCheckBox("tristateBox") + self.checkBox3.setTristate(True) + self.checkBox3.setCheckState(Qt.PartiallyChecked ) + self.checkBox3.stateChanged.connect( lambda:self.btnstate(self.checkBox3) ) + layout.addWidget(self.checkBox3) + + groupBox.setLayout(layout) + mainLayout = QVBoxLayout() + mainLayout.addWidget(groupBox) + + self.setLayout(mainLayout) + self.setWindowTitle("checkbox demo") + + def btnstate(self,btn ): + chk1Status = self.checkBox1.text()+", isChecked="+ str( self.checkBox1.isChecked() ) + ', chekState=' + str(self.checkBox1.checkState()) +"\n" + chk2Status = self.checkBox2.text()+", isChecked="+ str( self.checkBox2.isChecked() ) + ', checkState=' + str(self.checkBox2.checkState()) +"\n" + chk3Status = self.checkBox3.text()+", isChecked="+ str( self.checkBox3.isChecked() ) + ', checkState=' + str(self.checkBox3.checkState()) +"\n" + print(chk1Status + chk2Status + chk3Status ) + +if __name__ == '__main__': + app = QApplication(sys.argv) + checkboxDemo = CheckBoxDemo() + checkboxDemo.show() + sys.exit(app.exec_())