教程官网 白月黑羽教Python
本章和接下来几章,会列出Qt的 常见控件
,并且描述这些控件的 常用操作
。
要了解Qt 所有控件
和它们 所有操作
,请参阅如下官方手册:
按钮
QPushButton
就是常见的按钮
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LZchKQTa-1588684277877)(https://doc.qt.io/qtforpython/_images/windows-pushbutton.png)]
信号:被点击
当按钮被点击就会发出 clicked
信号,可以这样指定处理该信号的函数
button.clicked.connect(handleCalc)
方法:改变文本
代码中可以使用 setText
方法来改变按钮文本,比如
button.setText(text)
方法:禁用、启用
所有控件(继承自QWidget类)都支持 禁用和启用方法。
禁用后,该控件不再处理用户操作
- 禁用
button.setEnabled(False)
- 启用
button.setEnabled(True)
单行文本框
QLineEdit
是只能单行编辑的文本框。
信号:文本被修改
当文本框中的内容被键盘编辑,被点击就会发出 textChanged
信号,可以这样指定处理该信号的函数
edit.textChanged.connect(handleTextChange)
方法:获取文本
通过 text
方法获取编辑框内的文本内容,比如
text = edit.text()
方法:设置提示
通过 setPlaceholderText
方法可以设置提示文本内容,比如
edit.setPlaceholderText('请在这里输入URL')
方法:设置文本
通过 setText
方法设置编辑框内的文本内容为参数里面的文本字符串,比如
edit.setText('你好,白月黑羽')
原来的所有内容会被清除
方法:清除所有文本
clear
方法可以清除编辑框内所有的文本内容,比如
edit.clear()
方法:拷贝文本到剪贴板
copy
方法可以清除编辑框内所有的文本内容,比如
edit.copy()
方法:粘贴剪贴板文本
paste
方法可以把剪贴板内容,拷贝到编辑框当前光标所在处,比如
edit.paste()
多行纯文本框
QPlainTextEdit
是可以 多行
的纯文本编辑框。
信号:文本被修改
当文本框中的内容被键盘编辑,被点击就会发出 textChanged
信号,可以这样指定处理该信号的函数
edit.textChanged.connect(handleTextChange)
信号:光标位置改变
当文本框中的光标位置变动,就会发出 cursorPositionChanged
信号,可以这样指定处理该信号的函数
edit.cursorPositionChanged.connect(handleChanged)
方法:获取文本
通过 toPlainText
方法获取编辑框内的文本内容,比如
text = edit.toPlainText()
方法:设置提示
通过 setPlaceholderText
方法可以设置提示文本内容,比如
edit.setPlaceholderText('请在这里输入薪资表')
方法:设置文本
通过 setPlainText
方法设置编辑框内的文本内容 为参数里面的文本字符串,比如
edit.setPlainText('''你好,白月黑羽
hello byhy''')
原来的所有内容会被清除
方法:在末尾添加文本
通过 appendPlainText
方法在编辑框末尾添加文本内容,比如
edit.appendPlainText('你好,白月黑羽')
方法:清除所有文本
clear
方法可以清除编辑框内所有的文本内容,比如
edit.clear()
方法:拷贝文本到剪贴板
copy
方法可以清除编辑框内所有的文本内容,比如
edit.copy()
方法:粘贴剪贴板文本
paste
方法可以把剪贴板内容,拷贝到编辑框当前光标所在处,比如
edit.paste()
文本浏览框
QTextBrowser
是 只能查看文本
控件。
通常用来显示一些操作日志信息、或者不需要用户编辑的大段文本内容。
该控件 获取文本、设置文本、清除文本、剪贴板复制粘贴 等等, 都和上面介绍的 多行纯文本框是一样的。
下面我们主要讲解不同点
方法:在末尾添加文本
通过 append
方法在编辑框末尾添加文本内容,比如
textBrowser.append('你好,白月黑羽')
有时,浏览框里面的内容长度超出了可见范围,我们在末尾添加了内容,往往希望控件自动翻滚到当前添加的这行,
可以通过 ensureCursorVisible
方法来实现
textBrowser.append('你好,白月黑羽')
textBrowser.ensureCursorVisible()
文本标签
QLabel
就是常见的标签
方法:改变文本
代码中可以使用 setText
方法来改变标签文本内容,比如
button.setText(text)
组合选择框
QComboBox
是组合选择框,如下图所示
信号:选项改变
如果用户操作修改了QComboBox中的选项就会发出 currentIndexChanged
信号,可以这样指定处理该信号的