- 自动补全
- 可输入的弹出框
- 列表盒子
- 使用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_())



