PyQt常用控件
PyQt常用控件
lingyunQLineEdit
生成控件
widget = QLineEdit()
设置输入框文字
widget.setText('some text')
设置提示文字
widget.setPlaceholderText('some text')
设置输入框为只读
widget.setReadOnly(True)
设置输入框内容长度限制
widget.setMaxLength(10)
设置输入框为内容为非明文
widget.setEchoMode(QLineEdit.password)
设置输入框下拉提示选项列表
1 | my_list = ['aa1', 'aa2', 'aa3'] |
QPushButton
生成控件
bt = QPushButton('push')
给按钮设置图标
bt.setIcon(QIcon('icon.png'))
给按钮关联命令
bt.clicked.connect(func_name)
QCheckBox
生成控件
ck = QCheckBox('check')
设置默认为勾选状态
ck.setChecked(True)
返回是否勾选
ck.isChecked()
返回勾选框文字
ck.text()
QListWidget
生成控件
listWidget = QListWidget()
添加一个元素
listWidget.addItem('abc')
添加一个一堆元素
listWidget.addItems(['a1', 'b2', 'c3', 'd4'])
插入元素
listWidget.insertItem(1, 'b1')
给元素设置图标
1 | item = QListWidgetItem('test') |
给元素进行排序
listWidget.sortItems()
设置默认被选中的行
listWidget.setCurrentRow(1)
设置间隔行颜色区分
listWidget.setAlternatingRowColors(True)
设置行多选
listWidget.setSelectionMode(QAbstractItemView.ExtendedSelection)
获取行总数
listWidget.count()
获取指定行的文字
listWidget.item(1).text()
获取当前选择行的文字
listWidget.currentItem().text()
获取被选中的行,返回列表
listWidget.selectedItems()
QTableWidget
生成控件
tableWidget = QTableWidget(5,7)
设置行数
tableWidget.setRowCount(5)
设置列数
tableWidget.setColumnCount(7)
设置表头名称
tableWidget.setHorizontalHeaderLabels(['Project', 'Sequence', 'Shot', 'Task'])
获取表格的总行数
tableWidget.rowCount()
给指定格添加数据
1 | item = QTableWidget('test') |
插入行,插入列
1 | tableWidget.insertRow(2) |
删除行,删除列
1 | tableWidget.removeRow(0) |
隐藏行
tableWidget.hideRow(0)
清除表格内容(只清除数据,不包括表头)
tableWidget.clearContents()
清除所有表格内容
tableWidget.clear()
更改指定列表头的内容
tableWidget.setHorizontalHeaderItem(4, QTableWidgetItem('Step'))
设置表格的内容为勾选框
tableWidget.setCellWidget(1, 2, QCheckBox())
设置表格为单选模式
tableWidget.setSelectionMode(QAbstractItemView.SingleSelection)
设置选择单元格模式,为选取一行
tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)
设置表格不可编辑
tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
设置指定单元格不可编辑
1 | item = tableWidget.item(2, 3) |
为指定行设置行高
tableWidget.setRowHeight(0, 20)
给表格排序(以第二列倒序排序)
tableWidget.sortByColumn(1, Qt.DescedingOrder)
隐藏表格网格
tableWidget.setShowGrid(False)
隐藏表格行数序号
tableWidget.verticalHeader().setVisible(False)
获取指定单元格内容
tableWidget.item(2, 3).text()
QTreeWidget
生成控件
treeWidget = QTreeWidget()
设置列数
treeWidget.setColumnCount(2)
设置表头
treeWidget.setHeaderLabels(['Shots', 'describe'])
添加一个root目录
1 | root = QTreeWidgetItem() |
为root添加子目录
1 | item1 = QTreeWidgetItem() |
设置自动展开
treeWidget.expandAll()
设置展开开启动画效果
treeWidget.setAnimated()
设置root目录扩展整行
treeWidget.setFirstItemColumnSpanned(root, True)
设置行高,及颜色
1 | root.setSizeHint(0, QSize(50, 50)) |
QGroupBox
示例
1 | from PySide2.QtWidgets import * |
QTabWidget
生成控件
1 | app = QApplication(sys.argv) |
设置标签可移动
tabWidget.setMoveble(True)
设置标签关闭按钮
tabWidget.setTabsClosable(True)
设置指定标签图标
tabWidget.setTabIcon(0, 'icon.png')
QMenu
简单示例
1 | from PySide2.QtWidgets import * |
Action关联命令
saveAction.triggered.connect(my_command)
Action设置快捷键
saveAction.setShortcut('Ctrl+S')
Action设置图标
saveAction = QAction(QIcon('icon.png'), 'new')
为Menu一次添加多个Action
fileMenu.addActions([newAction, openAction, saveAction])
添加子菜单
fileMenu.addMenu(SecondMenu)
添加分割线
fileMenu.addSeparator()
右键菜单示例
1 | from PySide2.QtWidgets import * |
QFileDialog
选择文件对话框
QFileDialog.getOpenFileName()
选择多个文件对话框
QFileDialog.getOpenFileNames()
选择目录对话框
QFileDialog.getExistingDirectory()
获取保存文件的对话框
QFileDialog.getSaveFileName()
QColorDialog
获取颜色选择对话框
QColorDialog.getColor()
QFontDialog
获取字体选择对话框
QFontDialog.getFont()
QInputDialog
文字输入框
QInputDialog.getText(self, 'title', 'my text')
整数输入框
QInputDialog.getInt()
小数输入框
QInputDialog.getDouble()
列表选择对话框
1 | items = ['square', 'triangle', 'circle'] |
QMessageBox
询问对话框
QMessageBox.question('question', 'Are u sure?', QMessageBox.Yes|QMessageBox.No)
提示对话框
QMessageBox.information('information', 'niubi!')
警告对话框
QMessageBox.warning('warning', 'its wrong!')
错误对话框
QMessageBox.critical('critical', 'dont do this!')
关于对话框
QMessageBox.about('about', 'About lingyunfx')
消息对话框示例
1 | message = QMessageBox(self) |