日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 读取鼠标选中文本_木辛老师的编程课堂:Python和Qt之页面布局实战篇(一)...

發布時間:2024/4/11 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 读取鼠标选中文本_木辛老师的编程课堂:Python和Qt之页面布局实战篇(一)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過前幾節課的學習,我們已經基本上掌握了使用Qt Designer完成簡單的布局管理。通過這些知識的學習,我們算是對PyQt進行了初步的了解,也算是入門了!
但是僅僅掌握這些知識還是遠遠不夠的;
高深的程序技能是通過不斷的練習,反復的試錯才能掌握的一門簡單,但是高深的武功。所以,今天我們就專門講一節實戰課程,總結一下有關Qt Designer的一些知識。
請點擊右上角“關注”按鈕關注我們喲:跟著木辛老師學習Python編程知識,變身快樂的編程達人吧~

讓我們通過實戰,來進一步鞏固學過的知識吧。

打開Qt Designer,新建一個主窗口(Main Window),然后從左側的Buttons欄拖拽一個QPushButton到主窗口中,并將按鈕的顯示標簽修改為“計算”

添加按鈕

修改按鈕顯示文本的方法有兩個

  • 雙擊按鈕控件,當按鈕變為可輸入狀態的時候,既可以修改顯示文本內容了
  • 如上圖所示,我們通過屬性選擇窗口,找到“text”,將其值改為“計算”文案即可
  • 然后,我們來看一下如何放置這個按鈕,即這個按鈕的尺寸和位置

    調整按鈕位置和大小尺寸

    我們通過屬性編輯窗口中的“geometry”的字段,依次修改對應的值

  • X:當前選中控件左上角距離主窗口左側為370px
  • Y:當前選中控件上側距離主窗口上邊沿為170px
  • 寬度:即是當前選中控件的寬度,為131px
  • 高度:即是當前選中控件的高度,為41px
  • 咱們再來看一下轉換成Python代碼后的樣子

    self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(370, 170, 131, 41)) self.pushButton.setObjectName("pushButton")

    可以看到我們實例化了一個QPushButton轉換,通過setGeometry方法設置了它的geometry屬性,并且傳入了X=370 Y=170 width=131 height=41的參數;

    這樣,就實現了和Qt Designer相同的效果,而這個轉換后的python文件,就可以被其他的Python函數調用了。

    我們來多放幾個控件,嘗試著做一個好玩的小玩具吧

    放置多個控件

    我們在其中添加了一些控件:

    從Display Widgets中,拖拽了6個QLabel分別命名為“一月”,“二月”,“三月”,“四月”,“收入”,“支出”;

    從Input Widgets中,拖拽了8個Double Spin Box控件,并作為主要數據的輸入框;

    咱們再來看看對應的Python代碼會是什么樣子吧

    Python代碼

    紅框中的代碼

    (第29行)

    self.label_2 = QtWidgets.QLabel(self.centralwidget)

    實例話了一個QLabel,并起名為label_2;

    (第30行)

    self.label_2.setGeometry(QtCore.QRect(180, 100, 81, 41))

    設置了這個控件的絕對位置為180,100,81,41;

    為了大伙能更清楚的看清楚細節,我們將字體調大了一些,這里我設置了字體大小為24

    通過代碼,我們可以看到

    font = QtGui.QFont() font.setPointSize(24) self.label_2.setFont(font)

    首先實例化了一個字體實例font,設置字體屬性為24,將這個字體實例傳入label_2的setFont方法中,就完成了設置label_2字體大小的操作。

    之后的代碼就類似了:實例化控件,設置字體大小,設置控件絕對位置。

    所謂的絕對位置,是說控件所處于主窗口的x和y的坐標,不論主窗口的怎么改變,控件的位置都不會改變。

    那有沒有更加靈活的布局方式,在改變窗口大小的時候,控件會自動調整位置呢?

    使用布局管理器布局

    我們使用絕對坐標和大小的方式布局,每次都需要手動修改位置,比較麻煩;而且有時候窗口大小變化了,控件并不能自己調整大小。

    接下來,我們將會使用布局管理器學習和設計布局

    咱們在進行下一步操作之前呢,需要先使用一個小技巧,使我們的布局更合理

    在左側的QLabel控件的上方添加一個Qlabel控件,顯示文本置為空,為什么要這么做呢?請看木辛老師接下來的講解吧~

    垂直布局

    咱們選擇左側的4個QLabel控件(包含后來添加的空的QLabel),點擊鼠標右鍵,在彈出的菜單中選擇“布局” —> “垂直布局”,大家看看效果,這“3”個控件(有一個“看不見”的控件)是不是都在縱向對齊了呀?

    是的,選擇垂直布局之后,所選擇的控件會以左邊為基礎,在縱向方向上對齊。

    我們看一下轉換后的Python代碼是怎樣的:

    垂直布局

    代碼是不是很清晰呀?

    首先,會實例化一個QVBoxLayout類,木辛老師也給大家講過,水平布局的實例化方法(傳送門:《木辛老師的編程課堂:Python和Qt第2講之布局管理初探(三)》);

    然后,咱們創建的多個QLabel會被添加入這個垂直布局中;這樣,系統就會將包含的多有控件在垂直方向自動左對齊了;

    大家有沒有注意到:在屬性編輯器中,geometry屬性變成了灰色不可用,這說明這些控件的位置和大小已經由垂直布局管理器接管,與geometry無關了。

    屬性編輯器

    網格布局

    接下來,我們選中中間的10個輸入框控件,點擊鼠標右鍵,在彈出的快捷菜單中選擇“布局” —>“柵格布局”,看看效果。

    使用柵格布局

    柵格布局的意思就是該布局管理器的窗口呈網格狀排列。本來這8個零散的窗口控件就是要呈網格狀排列,因此使用柵格布局管理器正好合適。

    咱們看一下轉換成Python代碼轉換的效果吧

    Python代碼轉換

    通過這個源代碼,可以看出:只要實例化QGridLayout對象,就可以生成一個grid layout一個對象,將對應控件加入到這個布局管理器中,就可以將布局控制權交出給管理器了。

    水平布局

    從Qt Designer的左側的Spacers欄分別將Horizontal Spacer和Vertical Spacer窗口控件拖拽到主窗口中,從Display Widgets欄將Horizontal Line窗口控件拖拽到主窗口中,之后選擇當前主窗口中所有控件,點擊鼠標右鍵,在彈出的快捷菜單中選擇“布局” —>“水平布局”,看看效果。

    使用水平布局

    我們通過Qt Designer的菜單欄中“窗體”中的預覽選項,或者使用快捷鍵command+R既可以盡心預覽效果,非常方便喲!

    使用預覽查看

    學習了這么多布局管理器對窗體進行布局,大家已經是不是已經熟悉了布局的基礎操作了呀?

    也許經過多次的布局修改和調整,咱們的界面已經非常亂了,針對這種情況,Qt Designer提供了一個解決方法徹底修改布局:鼠標右鍵單擊已存在的布局,在彈出的快捷菜單中選擇“布局” —>“打破布局”。

    好了,今天咱們就先講到這里吧。

    請持續關注木辛老師的編程課喲,后續更多精彩陸續到來!

    快樂編程,快樂成長!

    總結

    以上是生活随笔為你收集整理的python 读取鼠标选中文本_木辛老师的编程课堂:Python和Qt之页面布局实战篇(一)...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。