[ Python ] PyQt5 PySide2 笔记

https://www.cnblogs.com/yeungchie/

PyQt5

from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * 

PySide2

from PySide2.QtWidgets import * from PySide2.QtCore import * from PySide2.QtGui import * 

顶部应用

QApplication

app = QApplication([]) app.setStyle(QStyleFactory.create('Fusion'))    # 稍微好看点的样式 app.exec_() 

部件

QWidget

wg = QWidget() 

窗口标题

wg.setWindowTitle('YEUNGCHIE') 

窗口尺寸

  • 初始尺寸
wg.resize(300, 200) # 设置尺寸 wg.size()           # 获取当前尺寸 
  • 最小/大尺寸
wg.setMinimumSize(300, 200) # 设置最小尺寸 wg.setMaximumSize(300, 200) # 设置最大尺寸 wg.minimumSize()            # 获取最小尺寸 wg.maximumSize()            # 获取最大尺寸 
  • 固定尺寸
wg.setFixedSize(300, 200)   # 固定尺寸 wg.setFixedWidth(300)       # 固定宽度 wg.setFixedHeight(200)      # 固定高度 
  • 宽度
wg.setMinimumWidth(300)     # 设置最小宽度 wg.setMaximumWidth(300)     # 设置最大宽度 wg.minimumWidth()           # 获取最小宽度 wg.maximumWidth()           # 获取最大宽度 
  • 高度
wg.setMinimumHeight(200)    # 设置最小高度 wg.setMaximumHeight(200)    # 设置最大高度 wg.minimumHeight()          # 获取最小高度 wg.maximumHeight()          # 获取最大高度 

窗口位置

wg.move(300, 200) 

窗口置顶

wg.setWindowFlags(Qt.WindowStaysOnTopHint) 

设置布局

wg.setLayout(self.gridLayout) 

QLabel

label = QLabel() 

文本

label.setText('LABEL')      # 设置文本 label.text()                # 获取文本 label.setIndent()           # 设置文本缩进 label.setToolTip( 'Tips' )  # 设置提示 label.setAlignment( Qt.AlignCenter | Qt.AlignRight )    # 设置文本对齐方式 

事件

  • 点击
label.linkClicked.connect(function) # 点击 
  • 划过
label.setText('<a href=https://baidu.com>Baidu</a>') label.linkHovered.connect(function) # 划过 

QCheckBox

checkBox = QCheckBox() 

文本

checkBox.setText( 'Enable' )    # 设置文本 checkBox.text()                 # 获取文本 

点击

checkBox.setChecked(True)   # 选中 checkBox.setChecked(False)  # 不选中 checkBox.isChecked()        # 返回选中状态 

QLineEdit

lineEdit = QLineEdit() 

文本

lineEdit.setText( 'working dir' )   # 设置文本 lineEdit.text()                     # 获取文本 

提示词

lineEdit.setPlaceholderText( '输入框内提示词' ) lineEdit.setToolTip( '鼠标悬停提示词' ) 

QComboBox

comboBox = QComboBox() 

添加选项

comboBox.addItem('virtuoso') comboBox.addItem('skipper') comboBox.addItems('R0 R90 MX MY MYR90'.split(' ')) comboBox.insertItem(5, 'MXR90')     # 索引 5 的位置插入 MXR90 comboBox.insertItems(2, ['R180', 'R270']) 

移除选项

comboBox.removeItem(0)  # 移除第 0 个 

选择选项

comboBox.setCurrentText( 'virtuoso' )   # 设置选择(文本) comboBox.currentText()                  # 获取选择(文本) comboBox.setCurrentIndex()              # 设置选择(索引) comboBox.currentIndex()                 # 获取选择(索引) 

选项编辑

comboBox.setItemText(0, 'Calibre')      # 将第 0 个选项改为 Calibre 

QPushButton

pushButton = QPushButton() 

文本

pushButton.setText( 'OK' )  # 设置文本 pushButton.text()           # 获取文本 

事件

pushButton.linkClicked.connect(function) # 点击 

布局

QFormLayout

formLayout = QFormLayout() 

标签对齐

formLayout.setLabelAlignment( Qt.AlignCenter | Qt.AlignRight )  # 靠右中心对齐 

增加 row

formLayout.addRow(标签1 Label, label) formLayout.addRow(标签2 CheckBox, checkBox) 

QGridLayout

gridLayout = QGridLayout() 

添加组件

gridLayout.addWidget(label, 0, 0)           # 布置于 row0, col0 gridLayout.addWidget(checkBox , 0, 1)       # 布置于 row0, col1 gridLayout.addWidget(lineEdit , 0, 2, 3, 1) # 布置于 row0, col2, row_span3, col_span1