栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Windows+Python使用PyQt5----简单样例(三)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Windows+Python使用PyQt5----简单样例(三)

Windows+Python使用PyQt5----简单样例(三)
  • 自动补全
  • 可输入的弹出框
  • 列表盒子
  • 使用PyQt5的designer工具

自动补全
from PyQt5.QtWidgets import *
import sys

class Window(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        layout = QGridLayout()
        self.setLayout(layout)

        # 设置自动补全的选项                                                
        names = ["Apple", "Alps", "Berry", "Cherry" ]
        # 初始化补全器
        completer = QCompleter(names)

        # 创建输入行控件                              
        self.lineedit = QLineEdit()
        # 将行输入控件设置补全器
        self.lineedit.setCompleter(completer)
        # 在布局中添加行输入控件
        layout.addWidget(self.lineedit, 0, 0)

app = QApplication(sys.argv)
screen = Window()
screen.show()
sys.exit(app.exec_())


可输入的弹出框
from PyQt5.QtWidgets import (QWidget, QPushButton, QLineEdit, QInputDialog, QApplication, QLabel)
import sys

class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 添加按钮                                                                                                   
        self.btn = QPushButton('Show Input Dialog', self)
        self.btn.move(30, 20)
        # 设置点击事件
        self.btn.clicked.connect(self.showDialog)

        # 添加标签                                                                                                      
        self.le = QLabel(self)
        self.le.move(30, 62)
        self.le.resize(400,22)

        # 设置窗口
        self.setGeometry(300, 300, 290, 150)
        self.setWindowTitle('Input dialog')
        self.show()


    def showDialog(self):
      # 设置输入的Dialog
      text, ok = QInputDialog.getText(self, 'Input Dialog', 'Enter text:')
      # 如果选择ok,则将内容加载到le这个标签上
      if ok:
        self.le.setText(str(text))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


列表盒子
from PyQt5.QtWidgets import *
import sys

class Window(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        layout = QGridLayout()
        self.setLayout(layout)
        # 初始化列表盒子控件
        self.listwidget = QListWidget()
        # 往顶层控件中添加元素
        self.listwidget.insertItem(0, "Red")
        self.listwidget.insertItem(1, "Orange")
        self.listwidget.insertItem(2, "Blue")
        self.listwidget.insertItem(3, "White")
        self.listwidget.insertItem(4, "Green")
        # 给盒子中的每个袁术添加点击事件
        self.listwidget.clicked.connect(self.clicked)
        layout.addWidget(self.listwidget)

    def clicked(self, qmodelindex):
        # 取出点击到的元素名称
        item = self.listwidget.currentItem()
        print(item.text())

app = QApplication(sys.argv)
screen = Window()
screen.show()
sys.exit(app.exec_())

使用PyQt5的designer工具

1、安装pyqt5-tool

pip install pyqt5-tools

2、安装完毕后,在以下目录找到designer.exe工具

x:xxxxxxAppDataLocalProgramsPythonPython37Libsite-packagesqt5_applicationsQtbin


3、使用designer工具进行UI界面的设计
注意,我们这里选择的是Dialog

绘制完毕后,点击保存。我们这里命名为Test.ui

使用命令把.ui文件转换为.py文件,方便后续调用

pyuic5 -o Test.py Test.ui

这样在根目录就得到了.py文件

调用该py文件,即可现实之前设计的UI界面

import sys
# PyQt5中使用的基本控件都在PyQt5.QtWidgets模块中
from PyQt5.QtWidgets import QApplication, QMainWindow
# 导入designer工具生成的login模块
from Test import Ui_Dialog

# 因为之前我们选择了QDialog
# 所以需要把QMainWindow改为QDialog即可
class MyMainForm(QDialog, Ui_Dialog):
    def __init__(self, parent=None):
        super(MyMainForm, self).__init__(parent)
        self.setupUi(self)

if __name__ == "__main__":
    # 固定的,PyQt5程序都需要QApplication对象。sys.argv是命令行参数列表,确保程序可以双击运行
    app = QApplication(sys.argv)
    # 初始化
    myWin = MyMainForm()
    # 将窗口控件显示在屏幕上
    myWin.show()
    # 程序运行,sys.exit方法确保程序完整退出。
    sys.exit(app.exec_())

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012806.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号