林中林 發表於 2026-1-6 12:12:00

pyqt图形化显示—1.基础框架和控件

<h1>前期准备:</h1>
<p>安装pyside6库,并在库内打开Qt Designer</p>
<h1>1. 基础框架:</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> QApplication, QWidget</pre>
</div>
<div>QWidget 空白页面 更常使用</div>
<h2>创建并继承类</h2>
<div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">class</span><span style="color: rgba(0, 0, 0, 1)"> MyWindow(QWidget):
    </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(128, 0, 0, 1)">"""</span><span style="color: rgba(128, 0, 0, 1)">
      初始化方法,用于创建窗口实例
      继承自QMainWindow,作为主窗口使用
      </span><span style="color: rgba(128, 0, 0, 1)">"""</span><span style="color: rgba(0, 0, 0, 1)">
      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__方法,初始化</span></pre>
</div>
<h2>主程序</h2>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">if</span> <span style="color: rgba(128, 0, 128, 1)">__name__</span> == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">__main__</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
    app </span>= QApplication([])<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 创建应用程序实例</span>
    window = MyWindow()<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 创建窗口实例</span>
    window.show()<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 显示窗口</span>
    app.<span style="color: rgba(0, 0, 255, 1)">exec</span>()<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 进入应用程序主循环</span></pre>
</div>
<h1>2.基础控件</h1>
<h2>按钮:</h2>
<p>可以交互的控件</p>
<div>QPushButton库</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> QPushButton</pre>
</div>
<p>使用:</p>
<div class="cnblogs_code">
<pre> 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>, self)<span style="color: rgba(0, 128, 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, 0, 1)"> 属性设置 在qt designer中找pushbutton的参数 xx.set参数名称即可</span>
btn.setGeometry(100, 100, 100, 50)<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 设置按键位置和大小(X, Y, 宽, 高)</span>
btn.setToolTip(<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></pre>
</div>
<p>其他不变</p>
<h2>输入框:</h2>
<p>同样可以交互的控件【也可以设置只读不交互</p>
<div>QLineEdit库</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> QLineEdit</pre>
</div>
<p>使用和按键类似</p>
<div class="cnblogs_code">
<pre>li = QLineEdit(self)    <span style="color: rgba(0, 128, 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, 0, 1)"> 属性设置 在qt designer中找Line Edit的参数 xx.set参数名称即可</span></pre>
</div>
<p>其他不变</p>
<h2>标签:</h2>
<p>文本,不可交互</p>
<div>QLabel库</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> QLabel</pre>
</div>
<p>使用类似,设置然后设置参数</p>
<div class="cnblogs_code">
<pre>lb = QLabel(<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>, self)<span style="color: rgba(0, 128, 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, 0, 1)"> 属性设置 在qt designer中找Label的参数 xx.set参数名称即可</span></pre>
</div>
<h1>3. ui文件转换调用</h1>
<p>试用一下会发现控件参数也太多了,还不包括布局啊对齐啊 杂七杂八也太多了</p>
<p>那么有没有什么更简单的方法呢?有的,有的</p>
<p>这时候前期准备中打开的Qt Designer来发挥作用了</p>
<p>直接在Qt Designer内设置好布局整个图形ui界面,保存为ui文件</p>
<p>这时候在ui文件的文件夹环境内运行终端</p>
<div class="cnblogs_Highlighter">
<pre class="brush:python;gutter:true;">pyside6-uic ui名称.ui -o ui名称.py</pre>
</div>
<p>得到一个py文件这时候直接导入继承使用就可以啦</p>
<div class="cnblogs_code">
<pre>rom program1.login <span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> Ui_Form

</span><span style="color: rgba(0, 0, 255, 1)">class</span><span style="color: rgba(0, 0, 0, 1)"> MyWindow(QWidget,Ui_Form):
    </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):
      super().</span><span style="color: rgba(128, 0, 128, 1)">__init__</span><span style="color: rgba(0, 0, 0, 1)">()

      self.setupUi(self)</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 设置用户界面</span></pre>
</div>
<p>其他的不变</p>
<p>经过上述就可以得到一个单独的ui图形界面啦</p>
<p>&nbsp;</p>
</div>
</div><br><br>
来源:https://www.cnblogs.com/berserker-slst/p/19446807
頁: [1]
查看完整版本: pyqt图形化显示—1.基础框架和控件