From 68543f9046099c7e20b4dd3ff3afaff5adedd99a Mon Sep 17 00:00:00 2001 From: M11212051 Date: Sun, 5 May 2024 22:29:59 +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/元件使用範例/qt04_QDockWidget.py | 40 ++++++++++++++ pyqt5/CODE/元件使用範例/qt04_QFileDialog.py | 53 ++++++++++++++++++ pyqt5/CODE/元件使用範例/qt04_QFontDialog.py | 36 +++++++++++++ pyqt5/CODE/元件使用範例/qt04_QInputDialog.py | 57 ++++++++++++++++++++ pyqt5/CODE/元件使用範例/qt04_QMessageBox.py | 39 ++++++++++++++ 5 files changed, 225 insertions(+) create mode 100644 pyqt5/CODE/元件使用範例/qt04_QDockWidget.py create mode 100644 pyqt5/CODE/元件使用範例/qt04_QFileDialog.py create mode 100644 pyqt5/CODE/元件使用範例/qt04_QFontDialog.py create mode 100644 pyqt5/CODE/元件使用範例/qt04_QInputDialog.py create mode 100644 pyqt5/CODE/元件使用範例/qt04_QMessageBox.py diff --git a/pyqt5/CODE/元件使用範例/qt04_QDockWidget.py b/pyqt5/CODE/元件使用範例/qt04_QDockWidget.py new file mode 100644 index 0000000..efb0511 --- /dev/null +++ b/pyqt5/CODE/元件使用範例/qt04_QDockWidget.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- + +''' + 【簡介】 + PyQt5中QDockWidget範例 + + +''' + +import sys +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * + +class DockDemo(QMainWindow): + def __init__(self, parent=None): + super(DockDemo, self).__init__(parent) + layout = QHBoxLayout() + bar=self.menuBar() + file=bar.addMenu("&File") + file.addAction("&New") + file.addAction("&Save") + file.addAction("&Quit") + self.items = QDockWidget("Dockable", self) + self.listWidget = QListWidget() + self.listWidget.addItem("item1") + self.listWidget.addItem("item2") + self.listWidget.addItem("item3") + self.items.setWidget(self.listWidget) + self.items.setFloating(False) + self.setCentralWidget(QTextEdit()) + self.addDockWidget(Qt.RightDockWidgetArea, self.items) + self.setLayout(layout) + self.setWindowTitle("Dock範例") + +if __name__ == '__main__': + app = QApplication(sys.argv) + demo = DockDemo() + demo.show() + sys.exit(app.exec_()) diff --git a/pyqt5/CODE/元件使用範例/qt04_QFileDialog.py b/pyqt5/CODE/元件使用範例/qt04_QFileDialog.py new file mode 100644 index 0000000..bc3b8cd --- /dev/null +++ b/pyqt5/CODE/元件使用範例/qt04_QFileDialog.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- + +''' + 【簡介】 + PyQt5中QFileDialog 範例 + + +''' + +import sys +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * + +class filedialogdemo(QWidget): + def __init__(self, parent=None): + super(filedialogdemo, self).__init__(parent) + layout = QVBoxLayout() + self.btn = QPushButton("載入圖片") + self.btn.clicked.connect(self.getfile) + layout.addWidget(self.btn) + self.le = QLabel("") + layout.addWidget(self.le) + self.btn1 = QPushButton("載入文字檔") + self.btn1.clicked.connect(self.getfiles) + layout.addWidget(self.btn1) + self.contents = QTextEdit() + layout.addWidget(self.contents) + self.setLayout(layout) + self.setWindowTitle("File Dialog 範例") + + def getfile(self): + fname, _ = QFileDialog.getOpenFileName(self, 'Open File', 'c:\\',"Image Files (*.jpg *.gif)") + self.le.setPixmap(QPixmap(fname)) + + def getfiles(self): + dlg = QFileDialog() + dlg.setFileMode(QFileDialog.AnyFile) + dlg.setFilter( QDir.Files ) + + if dlg.exec_(): + filenames= dlg.selectedFiles() + f = open(filenames[0], 'r') + + with f: + data = f.read() + self.contents.setText(data) + +if __name__ == '__main__': + app = QApplication(sys.argv) + ex = filedialogdemo() + ex.show() + sys.exit(app.exec_()) diff --git a/pyqt5/CODE/元件使用範例/qt04_QFontDialog.py b/pyqt5/CODE/元件使用範例/qt04_QFontDialog.py new file mode 100644 index 0000000..2e76730 --- /dev/null +++ b/pyqt5/CODE/元件使用範例/qt04_QFontDialog.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- + +''' + 【簡介】 + PyQt5中QFontDialog範例 + + +''' + +import sys +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * + +class FontDialogDemo(QWidget): + def __init__(self, parent=None): + super(FontDialogDemo, self).__init__(parent) + layout = QVBoxLayout() + self.fontButton = QPushButton("choose font") + self.fontButton .clicked.connect(self.getFont) + layout.addWidget(self.fontButton ) + self.fontLineEdit = QLabel("Hello, 測試字體範例") + layout.addWidget(self.fontLineEdit ) + self.setLayout(layout) + self.setWindowTitle("Font Dialog範例") + + def getFont(self): + font, ok = QFontDialog.getFont() + if ok: + self.fontLineEdit .setFont(font) + +if __name__ == '__main__': + app = QApplication(sys.argv) + demo = FontDialogDemo() + demo.show() + sys.exit(app.exec_()) diff --git a/pyqt5/CODE/元件使用範例/qt04_QInputDialog.py b/pyqt5/CODE/元件使用範例/qt04_QInputDialog.py new file mode 100644 index 0000000..d4c7681 --- /dev/null +++ b/pyqt5/CODE/元件使用範例/qt04_QInputDialog.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- + +''' + 【簡介】 + PyQt5中QInputDialog範例 + + +''' + +import sys +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * + +class InputdialogDemo(QWidget): + def __init__(self, parent=None): + super(InputdialogDemo, self).__init__(parent) + layout = QFormLayout() + self.btn1 = QPushButton("取得清單裡的選項") + self.btn1.clicked.connect(self.getItem) + self.le1 = QLineEdit() + layout.addRow(self.btn1,self.le1) + + self.btn2 = QPushButton("取得字串") + self.btn2.clicked.connect(self.getIext) + self.le2 = QLineEdit() + layout.addRow(self.btn2,self.le2) + + self.btn3 = QPushButton("取得整數") + self.btn3.clicked.connect(self.getInt) + self.le3 = QLineEdit() + layout.addRow(self.btn3,self.le3) + self.setLayout(layout) + self.setWindowTitle("Input Dialog範例") + + def getItem(self): + items = ("C", "C++", "Java", "Python") + item, ok = QInputDialog.getItem(self, "Select Input Dialog", + "語言清單:", items, 0, False) + if ok and item: + self.le1.setText(item) + + def getIext(self): + text, ok = QInputDialog.getText(self, 'Text Input Dialog', '輸入姓名:') + if ok: + self.le2.setText(str(text)) + + def getInt(self): + num,ok = QInputDialog.getInt(self,"Integer Input Dialog", "輸入數字:") + if ok: + self.le3.setText(str(num)) + +if __name__ == '__main__': + app = QApplication(sys.argv) + demo = InputdialogDemo() + demo.show() + sys.exit(app.exec_()) diff --git a/pyqt5/CODE/元件使用範例/qt04_QMessageBox.py b/pyqt5/CODE/元件使用範例/qt04_QMessageBox.py new file mode 100644 index 0000000..c10a0d0 --- /dev/null +++ b/pyqt5/CODE/元件使用範例/qt04_QMessageBox.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- + +''' + 【簡介】 + PyQt5中QMessage範例 + + +''' + +import sys +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * + +class WinForm( QWidget): + def __init__(self): + super(WinForm,self).__init__() + self.setWindowTitle("QMessageBox範例") + self.resize(300, 100) + self.myButton = QPushButton(self) + self.myButton.setText("點擊彈出訊息對話方塊") + self.myButton.clicked.connect(self.msg) + + def msg(self): + # 使用infomation訊息對話方塊 + reply = QMessageBox.information(self, "標題", "訊息文字", QMessageBox.Yes | QMessageBox.No , QMessageBox.Yes ) + + # reply = QMessageBox.information(self, "標題", "訊息對話方塊文字", QMessageBox.Yes | QMessageBox.No , QMessageBox.Yes ) + # reply = QMessageBox.question(self, "標題", "提問框訊息文字", QMessageBox.Yes | QMessageBox.No , QMessageBox.Yes ) + # reply = QMessageBox.warning(self, "標題", "警告框訊息文字", QMessageBox.Yes | QMessageBox.No , QMessageBox.Yes ) + # reply = QMessageBox.critical(self, "標題", "嚴重錯誤對話方塊訊息文字", QMessageBox.Yes | QMessageBox.No , QMessageBox.Yes ) + # reply = QMessageBox.about(self, "標題", "關於對話方塊" ) + print( reply ) + +if __name__ == '__main__': + app= QApplication(sys.argv) + demo = WinForm() + demo.show() + sys.exit(app.exec_())