pyqt图形化显示—4.便捷控件
<p>设计一个完整的图形化显示肯定需要多个窗口啊,ui啊 为了方便进行设计,qtside6提供了很多便捷控件</p><h1>弹出对话框</h1>
<h2>导入库</h2>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">from</span> PySide6.QtWidgets <span style="color: rgba(0, 0, 255, 1)">import</span> QMessageBox</pre>
</div>
<div>QMessageBox 弹出对话框库</div>
<h2>界面</h2>
<div>下面代码展示一下 就是一个按钮,点击后弹出对话框</div>
<div>
<div class="cnblogs_code"><img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_df45815f-67d0-4d51-8d0b-9690e3b6d498" class="code_img_opened lazyload" style="display: none" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_df45815f-67d0-4d51-8d0b-9690e3b6d498" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> <span style="color: rgba(0, 0, 255, 1)">def</span> <span style="color: rgba(128, 0, 128, 1)">__init__</span><span style="color: rgba(0, 0, 0, 1)">(self):
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span> super().<span style="color: rgba(128, 0, 128, 1)">__init__</span>()<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 调用父类的__init__方法,初始化QWidget</span>
<span style="color: rgba(0, 128, 128, 1)"> 3</span>
<span style="color: rgba(0, 128, 128, 1)"> 4</span> btn = QPushButton(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">弹出对话框</span><span style="color: rgba(128, 0, 0, 1)">'</span>)<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 创建按钮</span>
<span style="color: rgba(0, 128, 128, 1)"> 5</span> btn.clicked.connect(self.test)<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 连接按钮的clicked信号到槽函数</span>
<span style="color: rgba(0, 128, 128, 1)"> 6</span>
<span style="color: rgba(0, 128, 128, 1)"> 7</span> ml = QVBoxLayout()<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 创建主布局</span>
<span style="color: rgba(0, 128, 128, 1)"> 8</span> ml.addWidget(btn)<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 添加到主布局中</span>
<span style="color: rgba(0, 128, 128, 1)"> 9</span>
<span style="color: rgba(0, 128, 128, 1)">10</span> self.setLayout(ml)<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 设置主布局</span>
<span style="color: rgba(0, 128, 128, 1)">11</span>
<span style="color: rgba(0, 128, 128, 1)">12</span> <span style="color: rgba(0, 0, 255, 1)">def</span><span style="color: rgba(0, 0, 0, 1)"> test(self):
</span><span style="color: rgba(0, 128, 128, 1)">13</span> QMessageBox.question(self, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">提示</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">这是一个对话框</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 128, 1)">14</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> QMessageBox.information(self, '提示', '这是一个对话框', QMessageBox.StandardButton.Ok)</span>
<span style="color: rgba(0, 128, 128, 1)">15</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> QMessageBox.warning(self, '提示', '这是一个对话框', QMessageBox.StandardButton.Ok)</span>
<span style="color: rgba(0, 128, 128, 1)">16</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> QMessageBox.critical(self, '提示', '这是一个对话框', QMessageBox.StandardButton.Ok)</span>
<span style="color: rgba(0, 128, 128, 1)">17</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> QMessageBox.about(self, '提示', '这是一个对话框')</span></pre>
</div>
<span class="cnblogs_code_collapse">弹出对话框界面展示</span></div>
<p>可以发现属性有很多种下面介绍一下,其实没有太大的区别,只有提示图标的变化</p>
<div>question <img alt="image" width="197" height="138" loading="lazy" src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107200912826-1691893868.png"> information <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107200959413-1872306159.png"> warning <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107201039595-1921426495.png"></div>
<div>
<div>critical <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107201109834-774963470.png"> about <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107201146660-438204653.png"></div>
<div>
<p>根据第一个函数和其他函数的不同用法,可以发现参数不同的作用</p>
<div>
<div>QMessageBox.属性名(self, '标题', '文字内容', 界面的交互按钮,默认按钮)</div>
<div>按钮如果不设置会自动设置为Yes和No,具体有什么提示按钮可以在python中QMessageBox.StandardButton. 【记得带点】查询一下,还是整合了很多的。那如果我不希望这个界面只有一个按钮怎么设置多个呢,可以使用分隔符设置多个。默认按钮就是在第五个参数位置重复一下希望默认的按钮,不设置默认为第一个。</div>
<div>
<div class="cnblogs_code">
<pre>QMessageBox.information(self, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">提示</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">这是一个对话框</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
QMessageBox.StandardButton.Ok </span>| QMessageBox.StandardButton.No | QMessageBox.StandardButton.Cancel)</pre>
</div>
<p>这样我就设置了一个多按钮的弹出框</p>
</div>
<div>
<p><img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107201926213-817342105.png"></p>
<p>那么我们设置好了界面如何进行交互呢,其实QMessageBox.属性名()是有返回值的,返回值为按键名称【QMessageBox.StandardButton.按键名】,我们就可以根据返回值判断设置逻辑</p>
</div>
<h1>文件交互</h1>
</div>
</div>
<h2>导入库</h2>
</div>
<div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">from</span> PySide6.QtWidgets <span style="color: rgba(0, 0, 255, 1)">import</span> QFileDialog</pre>
</div>
<div>QFileDialog : 文件交互的库</div>
</div>
<h2>界面</h2>
<div class="cnblogs_code"><img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_356eba18-1a6f-4f45-b74f-54b952d6d413" class="code_img_opened lazyload" style="display: none" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_356eba18-1a6f-4f45-b74f-54b952d6d413" class="cnblogs_code_hide">
<pre> <span style="color: rgba(0, 0, 255, 1)">def</span> <span style="color: rgba(128, 0, 128, 1)">__init__</span><span style="color: rgba(0, 0, 0, 1)">(self):
super().</span><span style="color: rgba(128, 0, 128, 1)">__init__</span>()<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 调用父类的__init__方法,初始化QWidget</span>
self.resize(200, 150<span style="color: rgba(0, 0, 0, 1)">)
btn </span>= QPushButton(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">选择文件</span><span style="color: rgba(128, 0, 0, 1)">'</span>)<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 创建按钮</span>
<span style="color: rgba(0, 0, 0, 1)"> btn.clicked.connect(self.test)
ml </span>= QVBoxLayout()<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 创建主布局</span>
<span style="color: rgba(0, 0, 0, 1)"> ml.addWidget(btn)
self.setLayout(ml)</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 设置主布局</span>
<span style="color: rgba(0, 0, 255, 1)">def</span><span style="color: rgba(0, 0, 0, 1)"> test(self):
fname </span>= QFileDialog.getOpenFileName(self, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">选择文件</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">./</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Text Files (*.txt);;All Files (*)</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> fname = QFileDialog.getOpenFileNames(self, '选择文件', './', 'Text Files (*.txt);;All Files (*)')</span>
<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> fname = QFileDialog.getExistingDirectory(self, '选择文件', './')</span>
<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> fname = QFileDialog.getSaveFileName(self, '选择文件', './', 'Text Files (*.txt);;All Files (*)')</span>
<span style="color: rgba(0, 0, 255, 1)">print</span>(fname)</pre>
</div>
<span class="cnblogs_code_collapse">文件交互界面演示</span></div>
<p>不同的属性对应不同的命令</p>
<div>getOpenFileName : 打开单个文件</div>
<div>
<div>getOpenFileNames : 打开多个文件</div>
<div>
<div>getExistingDirectory : 打开文件夹</div>
<div>
<div>getSaveFileName : 保存文件</div>
<div> </div>
<div>getOpenFileName 和getOpenFileNames 的参数如下(self,‘标题名称’,‘文件夹打开路径’,‘过滤文件类型’)</div>
<div>self位置为窗口类型;过滤文件类型就行下图演示确定上方的下拉框【过滤文件格式:名称(*.希望的文件后缀 *.其他后缀);;名称(*.文件后缀)】需要注意整个过滤类型中符号均为英文格式,例如:</div>
<div>
<div>'All Files (*);;Text Files (*.txt);;py文件(*.py))'</div>
</div>
</div>
</div>
</div>
<p><img alt="image" width="759" height="482" loading="lazy" src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107203549412-203932324.png"></p>
<p> 选择之后我们可以得到返回值</p>
<p>getOpenFileName 返回一个元组,第一个是文件地址,第二个是通过那个过滤类型中选择的</p>
<p><img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107205000858-1640765424.png"></p>
<p> getOpenFileNames 返回一个元组,第一个元素是一个列表,各个文件的地址;第二个同样是过滤类型名称</p>
<div>
<p><img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107205157037-2135918021.png"></p>
<p> getExistingDirectory 的参数为(窗体名称(sefl),‘标题名称’,‘打开文件夹的默认路径’)</p>
</div>
<div>
<p><img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107205617631-338698733.png"></p>
<p>getExistingDirectory 返回值为选择的文件夹地址 <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107205703673-1045509197.png"></p>
<p>getSaveFileName 与打开文件类似,返回值同样为一个元组,第一个为保存文件地址,第二个为过滤类型。不同的是如果有同名文件夹,会提示是否覆盖,是会覆盖,否会返回一个有两个空元素的元组</p>
<p><img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107210207350-1902614971.png"></p>
<p> 选择否,并关闭弹出的界面的返回值 <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260107210225905-2106790031.png"></p>
<h1> 获取输入</h1>
<h2>导入库</h2>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">from</span> PySide6.QtWidgets <span style="color: rgba(0, 0, 255, 1)">import</span> QInputDialog</pre>
</div>
<div>QInputDialog : 获取输入的库</div>
<h2>界面</h2>
<p> 界面我们创建一个按钮,点击就弹出获取输入,按钮控件已经好多次展示了,这次就直接展示tex函数吧</p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(0, 0, 255, 1)">def</span><span style="color: rgba(0, 0, 0, 1)"> test(self):
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">result = QInputDialog.getInt(self, '输入框', '请输入整数', 0, 0, 100, 1)</span>
<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">result, ok = QInputDialog.getDouble(self, '输入框', '请输入浮点数', 0.0, 0.0, 111.1,2)</span>
<span style="color: rgba(0, 0, 0, 1)">
result, ok </span>= QInputDialog.getText(self, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">输入框</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">请输入内容</span><span style="color: rgba(128, 0, 0, 1)">'</span>, QLineEdit.EchoMode.PasswordEchoOnEdit, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">默认内容</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">result, ok = QInputDialog.getMultiLineText(self, '输入框', '请输入内容', '默认内容')</span>
<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">result, ok = QInputDialog.getItem(self, '输入框', '请选择', ['选项1', '选项2', '选项3'],2,False)</span>
<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> if ok:</span>
<span style="color: rgba(0, 0, 255, 1)">print</span>(result)</pre>
</div>
<h3>获取数字类:</h3>
<div>QInputDialog.getInt 获取整型数字(窗体类型, ‘弹出窗口标题’, '弹出窗口内容', 默认数字, 最小数字, 最大数字, 步长) <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260109110921648-1157241432.png"></div>
<div> 返回值是一个元组,获得的数字和你点击的按键;需要注意,如果点击否,返回数值为0 <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260109111033513-1931222975.png"></div>
<div> 其实观看界面就知道了这个窗口也可以根据输入框的右侧上下小箭头进行选择,只不过默认可以输入,所以可以更改</div>
</div>
</div>
<div>QInputDialog.getDouble 获取浮点型数字(窗体类型, ‘弹出窗口标题’, '弹出窗口内容', 默认数字, 最小数字, 最大数字, 浮点位数) <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260109111401026-2038984830.png"></div>
<div> 返回值同整形一样,同样点否返回值为0,这里只返回了数字是因为在定义里分别定义了元组不同元素的名称 <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260109111524139-537905621.png">
<h3>获取文字类</h3>
<p>QInputDialog.getText 获取文本 (窗体类型, ‘弹出窗口标题’, '弹出窗口内容',文字类型QLineEdit.EchoMode.模式名称, '默认内容')</p>
<div> <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260109111714440-1535969360.png"></div>
<div> </div>
<div> 文字类型QLineEdit.EchoMode.模式名称 是什么呢,就是输入文本的显示方式可以有一下几种形式</div>
<div>
<div> Normal 常规,没有任何变化
<div> NoEcho 有输入,但是文本框内不显示
<div> Password 输入在文本框内的字符加密,变为黑点</div>
<div> 还有其他形式,有兴趣可以自行探索一下</div>
</div>
<div> </div>
</div>
</div>
<div> 返回值同样为元组,输入文本和点击的按键,点击否,返回空 <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260109111903314-1975283537.png">
<div>QInputDialog.getMultiLineText 获取大量文本, (窗体类型, ‘弹出窗口标题’, '弹出窗口内容', '默认内容') <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260109113049826-977505505.png"></div>
</div>
<div> 返回值为元组,输入内容和按键;若按键为否内容为空</div>
<h3>获取列表类</h3>
<div>
<div>QInputDialog.getItem 列表,(窗体类型, ‘弹出窗口标题’, '[列表内容]', '默认内容列表下标',是否可编辑) <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260109113313099-2037549092.png"></div>
<div> 若不单独设置,默认可编辑</div>
<div> 返回值为元组,选项内容和按键;需要注意无论点击是否,返回值会返回内容;如果可编辑,否会返回默认选项 <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260109113724324-1171467345.png"></div>
<h1>字体修改</h1>
<h2>导入库</h2>
<div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">from</span> PySide6.QtWidgets <span style="color: rgba(0, 0, 255, 1)">import</span> QFontDialog, QColorDialog</pre>
</div>
<p>常用word都知道,字体修改一种是字体、字号等等的修改,这部分使QFontDialog库;另一部分是颜色的修改,这部分使用QcolorDialog库</p>
</div>
<h2>界面</h2>
<div class="cnblogs_code"><img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_83b58a3e-d9c5-4b02-9866-e24e7cfc64b7" class="code_img_opened lazyload" style="display: none" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_83b58a3e-d9c5-4b02-9866-e24e7cfc64b7" class="cnblogs_code_hide">
<pre> <span style="color: rgba(0, 0, 255, 1)">def</span> <span style="color: rgba(128, 0, 128, 1)">__init__</span><span style="color: rgba(0, 0, 0, 1)">(self):
super().</span><span style="color: rgba(128, 0, 128, 1)">__init__</span>()<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 调用父类的__init__方法,初始化QWidget</span>
self.setWindowTitle(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">字体修改</span><span style="color: rgba(128, 0, 0, 1)">'</span>)<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 设置窗口标题</span>
<span style="color: rgba(0, 0, 0, 1)">
self.textEdit </span>= QTextEdit()<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 创建文本框</span>
self.btn1 = QPushButton(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">更改字体</span><span style="color: rgba(128, 0, 0, 1)">'</span>)<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 创建按钮</span>
self.btn2 = QPushButton(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">更改颜色</span><span style="color: rgba(128, 0, 0, 1)">'</span>)<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 创建按钮</span>
<span style="color: rgba(0, 0, 0, 1)"> self.btn1.clicked.connect(self.test)
self.btn2.clicked.connect(self.test)
ml </span>= QVBoxLayout()<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 创建主布局</span>
ml.addWidget(self.textEdit)<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 添加文本框到主布局</span>
<span style="color: rgba(0, 0, 0, 1)"> ml.addWidget(self.btn1)
ml.addWidget(self.btn2)
self.setLayout(ml)</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 设置主布局</span>
<span style="color: rgba(0, 0, 255, 1)">def</span><span style="color: rgba(0, 0, 0, 1)"> test(self):
</span><span style="color: rgba(0, 0, 255, 1)">if</span> self.sender() ==<span style="color: rgba(0, 0, 0, 1)"> self.btn1:
ok, font </span>=<span style="color: rgba(0, 0, 0, 1)"> QFontDialog.getFont()
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> ok:
self.textEdit.setFont(font)
</span><span style="color: rgba(0, 0, 255, 1)">elif</span> self.sender() ==<span style="color: rgba(0, 0, 0, 1)"> self.btn2:
color </span>=<span style="color: rgba(0, 0, 0, 1)"> QColorDialog.getColor()
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> color.isValid():
self.textEdit.setTextColor(color)</span></pre>
</div>
<span class="cnblogs_code_collapse">字体修改</span></div>
<p>我们创建一个文字输入框,点击下面两个按钮对输入框进行字体修改 <img alt="image" width="230" height="252" loading="lazy" src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260111160055648-2079738009.png"></p>
<p>输入字体后,点击按钮激活对应槽函数,由于功能类似就进行了整合,通过self.sender()检测点击的那个按键,由于是需要传参所以这次使用的self.的函数内全局命名方式</p>
<div>QFontDialog.getFont() 弹出一个字体修改界面
<p> <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260111160735839-1455349721.png"></p>
</div>
<div> 函数返回两个参数,一个是点击的按键,另一个是字体的相关参数
<p><img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260111160700104-215096701.png"></p>
<div>textEdit.setFont(字体参数) 这个就是对与该控件选择的字体参数对文本框进行修改,需要注意这个控件是对于整个文本框的内容进行修改</div>
<div>QColorDialog.getColor() 弹出一个颜色选择界面
<p> <img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260111161453561-1419008610.png"></p>
<p> 返回值为颜色的参数(红通道,绿色通道,蓝通道,1)需要注意通道内数字为1以内的浮点数,例如 100 对应0.392;200对应0.7843</p>
<p><img src="https://img2024.cnblogs.com/blog/1677113/202601/1677113-20260111161806084-650589596.png"></p>
<div>textEdit.setTextColor(颜色参数) 这个就是对与该控件选择的字体参数对文本框进行修改,需要注意这个控件的颜色修改相对于字体修改不同,它可以实现对于选定文本的字体颜色修改</div>
</div>
</div>
</div>
</div><br><br>
来源:https://www.cnblogs.com/berserker-slst/p/19453891
頁:
[1]