'木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕'

Qt 軟件 Python 設計 MOOC PyCharm 木辛老師帶你玩轉編程 2019-07-30
"

軟件實戰開始,快速提供編程能力;通過實戰,分析產品需求,梳理設計需求,提升項目分析和架構的能力。快點跟著木辛老師一起學習吧!

請點擊右上角“關注”按鈕關注我們喲:跟著木辛老師學習Python編程知識,變身快樂的編程達人吧~

上節課的時候,留了一個小尾巴,不知道大家這幾天有沒有思考過這個問題呢?

“將主窗口的標題欄隱藏之後,發現無法關閉窗口。這應該怎麼解決?”

那麼,在這一節課裡,我們就講一下通過編碼的方式,調用系統方法,將窗口順利的關閉。

目前的登錄頁面還沒有製作完畢,還需要繼續使用登錄頁面的設計稿。

"

軟件實戰開始,快速提供編程能力;通過實戰,分析產品需求,梳理設計需求,提升項目分析和架構的能力。快點跟著木辛老師一起學習吧!

請點擊右上角“關注”按鈕關注我們喲:跟著木辛老師學習Python編程知識,變身快樂的編程達人吧~

上節課的時候,留了一個小尾巴,不知道大家這幾天有沒有思考過這個問題呢?

“將主窗口的標題欄隱藏之後,發現無法關閉窗口。這應該怎麼解決?”

那麼,在這一節課裡,我們就講一下通過編碼的方式,調用系統方法,將窗口順利的關閉。

目前的登錄頁面還沒有製作完畢,還需要繼續使用登錄頁面的設計稿。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

登錄界面設計稿

如果大家需要複習一下信號和槽的知識,可以參考一下木辛老師之前的一篇教程,傳送門:《木辛老師的編程課堂:Python和Qt之頁面佈局實戰篇(2)》。

增加關閉按鈕

我們需要先按照設計稿的要求,在主窗口中添加一個關閉按鈕:“x”。

將關閉按鈕的素材圖片拷貝到當前項目的images目錄下,姑且名字就叫做:

close_windows.png 

打開Qt Designer開發工具,在彈出的對話框中點擊“打開”按鈕,選擇構建登錄頁面的.ui文件,在這裡是“LoginMainWin.ui”;

雙擊打開,或者單擊選中這個文件之後,點擊右下角的“打開”按鈕。

"

軟件實戰開始,快速提供編程能力;通過實戰,分析產品需求,梳理設計需求,提升項目分析和架構的能力。快點跟著木辛老師一起學習吧!

請點擊右上角“關注”按鈕關注我們喲:跟著木辛老師學習Python編程知識,變身快樂的編程達人吧~

上節課的時候,留了一個小尾巴,不知道大家這幾天有沒有思考過這個問題呢?

“將主窗口的標題欄隱藏之後,發現無法關閉窗口。這應該怎麼解決?”

那麼,在這一節課裡,我們就講一下通過編碼的方式,調用系統方法,將窗口順利的關閉。

目前的登錄頁面還沒有製作完畢,還需要繼續使用登錄頁面的設計稿。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

登錄界面設計稿

如果大家需要複習一下信號和槽的知識,可以參考一下木辛老師之前的一篇教程,傳送門:《木辛老師的編程課堂:Python和Qt之頁面佈局實戰篇(2)》。

增加關閉按鈕

我們需要先按照設計稿的要求,在主窗口中添加一個關閉按鈕:“x”。

將關閉按鈕的素材圖片拷貝到當前項目的images目錄下,姑且名字就叫做:

close_windows.png 

打開Qt Designer開發工具,在彈出的對話框中點擊“打開”按鈕,選擇構建登錄頁面的.ui文件,在這裡是“LoginMainWin.ui”;

雙擊打開,或者單擊選中這個文件之後,點擊右下角的“打開”按鈕。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

打開登錄界面文件

成功打開之後,大家就可以看到之前尚未完成的登錄頁面。

拖拽左側Buttons區的QPushButton到主窗口,並按照設計稿將這個按鈕放置在560px x 10px的位置。

"

軟件實戰開始,快速提供編程能力;通過實戰,分析產品需求,梳理設計需求,提升項目分析和架構的能力。快點跟著木辛老師一起學習吧!

請點擊右上角“關注”按鈕關注我們喲:跟著木辛老師學習Python編程知識,變身快樂的編程達人吧~

上節課的時候,留了一個小尾巴,不知道大家這幾天有沒有思考過這個問題呢?

“將主窗口的標題欄隱藏之後,發現無法關閉窗口。這應該怎麼解決?”

那麼,在這一節課裡,我們就講一下通過編碼的方式,調用系統方法,將窗口順利的關閉。

目前的登錄頁面還沒有製作完畢,還需要繼續使用登錄頁面的設計稿。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

登錄界面設計稿

如果大家需要複習一下信號和槽的知識,可以參考一下木辛老師之前的一篇教程,傳送門:《木辛老師的編程課堂:Python和Qt之頁面佈局實戰篇(2)》。

增加關閉按鈕

我們需要先按照設計稿的要求,在主窗口中添加一個關閉按鈕:“x”。

將關閉按鈕的素材圖片拷貝到當前項目的images目錄下,姑且名字就叫做:

close_windows.png 

打開Qt Designer開發工具,在彈出的對話框中點擊“打開”按鈕,選擇構建登錄頁面的.ui文件,在這裡是“LoginMainWin.ui”;

雙擊打開,或者單擊選中這個文件之後,點擊右下角的“打開”按鈕。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

打開登錄界面文件

成功打開之後,大家就可以看到之前尚未完成的登錄頁面。

拖拽左側Buttons區的QPushButton到主窗口,並按照設計稿將這個按鈕放置在560px x 10px的位置。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

通過右側的屬性編輯窗口,修改geometry屬性,將這個控件的X、Y、寬度和高度分別修改為:560、10、25、20。

起個名字

在之前的課程裡,並沒有提到這個關閉按鈕,所以,這個關閉按鈕目前還沒名沒姓,屬於一個黑戶!

那咱們給他起一個名字吧,按照之前的規定,這個關閉按鈕就叫它:

btn_close_window

同時,一定要修改這個控件的objectName屬性喲,否則無法通過btn_close_window這個名字找到這個控件。

具體方法就是:選中這個控件,在屬性編輯窗口中修改QObject中的objectName字段,將這個字段的值修改為btn_close_window就可以了。

好了,目前位置我們已經將關閉按鈕添加好了,保存程序;進入PyCharm軟件,右鍵點擊LoginMainWin.ui文件,在彈出來的菜單中選擇“External Tools”中的“PyUIC”插件,將.ui文件轉換為.py文件。

"

軟件實戰開始,快速提供編程能力;通過實戰,分析產品需求,梳理設計需求,提升項目分析和架構的能力。快點跟著木辛老師一起學習吧!

請點擊右上角“關注”按鈕關注我們喲:跟著木辛老師學習Python編程知識,變身快樂的編程達人吧~

上節課的時候,留了一個小尾巴,不知道大家這幾天有沒有思考過這個問題呢?

“將主窗口的標題欄隱藏之後,發現無法關閉窗口。這應該怎麼解決?”

那麼,在這一節課裡,我們就講一下通過編碼的方式,調用系統方法,將窗口順利的關閉。

目前的登錄頁面還沒有製作完畢,還需要繼續使用登錄頁面的設計稿。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

登錄界面設計稿

如果大家需要複習一下信號和槽的知識,可以參考一下木辛老師之前的一篇教程,傳送門:《木辛老師的編程課堂:Python和Qt之頁面佈局實戰篇(2)》。

增加關閉按鈕

我們需要先按照設計稿的要求,在主窗口中添加一個關閉按鈕:“x”。

將關閉按鈕的素材圖片拷貝到當前項目的images目錄下,姑且名字就叫做:

close_windows.png 

打開Qt Designer開發工具,在彈出的對話框中點擊“打開”按鈕,選擇構建登錄頁面的.ui文件,在這裡是“LoginMainWin.ui”;

雙擊打開,或者單擊選中這個文件之後,點擊右下角的“打開”按鈕。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

打開登錄界面文件

成功打開之後,大家就可以看到之前尚未完成的登錄頁面。

拖拽左側Buttons區的QPushButton到主窗口,並按照設計稿將這個按鈕放置在560px x 10px的位置。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

通過右側的屬性編輯窗口,修改geometry屬性,將這個控件的X、Y、寬度和高度分別修改為:560、10、25、20。

起個名字

在之前的課程裡,並沒有提到這個關閉按鈕,所以,這個關閉按鈕目前還沒名沒姓,屬於一個黑戶!

那咱們給他起一個名字吧,按照之前的規定,這個關閉按鈕就叫它:

btn_close_window

同時,一定要修改這個控件的objectName屬性喲,否則無法通過btn_close_window這個名字找到這個控件。

具體方法就是:選中這個控件,在屬性編輯窗口中修改QObject中的objectName字段,將這個字段的值修改為btn_close_window就可以了。

好了,目前位置我們已經將關閉按鈕添加好了,保存程序;進入PyCharm軟件,右鍵點擊LoginMainWin.ui文件,在彈出來的菜單中選擇“External Tools”中的“PyUIC”插件,將.ui文件轉換為.py文件。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

轉換.ui文件為.py文件

此時,打開LoginMainWin.py文件,咱們一起看看代碼有沒有更新吧。

"

軟件實戰開始,快速提供編程能力;通過實戰,分析產品需求,梳理設計需求,提升項目分析和架構的能力。快點跟著木辛老師一起學習吧!

請點擊右上角“關注”按鈕關注我們喲:跟著木辛老師學習Python編程知識,變身快樂的編程達人吧~

上節課的時候,留了一個小尾巴,不知道大家這幾天有沒有思考過這個問題呢?

“將主窗口的標題欄隱藏之後,發現無法關閉窗口。這應該怎麼解決?”

那麼,在這一節課裡,我們就講一下通過編碼的方式,調用系統方法,將窗口順利的關閉。

目前的登錄頁面還沒有製作完畢,還需要繼續使用登錄頁面的設計稿。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

登錄界面設計稿

如果大家需要複習一下信號和槽的知識,可以參考一下木辛老師之前的一篇教程,傳送門:《木辛老師的編程課堂:Python和Qt之頁面佈局實戰篇(2)》。

增加關閉按鈕

我們需要先按照設計稿的要求,在主窗口中添加一個關閉按鈕:“x”。

將關閉按鈕的素材圖片拷貝到當前項目的images目錄下,姑且名字就叫做:

close_windows.png 

打開Qt Designer開發工具,在彈出的對話框中點擊“打開”按鈕,選擇構建登錄頁面的.ui文件,在這裡是“LoginMainWin.ui”;

雙擊打開,或者單擊選中這個文件之後,點擊右下角的“打開”按鈕。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

打開登錄界面文件

成功打開之後,大家就可以看到之前尚未完成的登錄頁面。

拖拽左側Buttons區的QPushButton到主窗口,並按照設計稿將這個按鈕放置在560px x 10px的位置。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

通過右側的屬性編輯窗口,修改geometry屬性,將這個控件的X、Y、寬度和高度分別修改為:560、10、25、20。

起個名字

在之前的課程裡,並沒有提到這個關閉按鈕,所以,這個關閉按鈕目前還沒名沒姓,屬於一個黑戶!

那咱們給他起一個名字吧,按照之前的規定,這個關閉按鈕就叫它:

btn_close_window

同時,一定要修改這個控件的objectName屬性喲,否則無法通過btn_close_window這個名字找到這個控件。

具體方法就是:選中這個控件,在屬性編輯窗口中修改QObject中的objectName字段,將這個字段的值修改為btn_close_window就可以了。

好了,目前位置我們已經將關閉按鈕添加好了,保存程序;進入PyCharm軟件,右鍵點擊LoginMainWin.ui文件,在彈出來的菜單中選擇“External Tools”中的“PyUIC”插件,將.ui文件轉換為.py文件。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

轉換.ui文件為.py文件

此時,打開LoginMainWin.py文件,咱們一起看看代碼有沒有更新吧。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

查看python文件的變化

可以看到,代碼中出現了剛才添加的QPushButton控件,並通過對象的setGeometry方法,將對應的屬性成功傳遞。

按鈕加載圖片

接下來,需要將關閉按鈕的圖像放置上去了。

pixmap = QtGui.QPixmap(QtGui.QImage('images/close_windows.png'))
self.btn_close_window.setIcon(QtGui.QIcon(pixmap))
self.btn_close_window.setIconSize(QSize(10, 10))

我們通過實例化了一個QPixmap對象,加載了關閉按鈕的圖片文件,通過使用QPushButton的setIcon方法,將這個pixmap設置為QPushButton上的一個小圖標,同時還將圖標尺寸設置為10x10px,這樣看起來更美觀一些。

"

軟件實戰開始,快速提供編程能力;通過實戰,分析產品需求,梳理設計需求,提升項目分析和架構的能力。快點跟著木辛老師一起學習吧!

請點擊右上角“關注”按鈕關注我們喲:跟著木辛老師學習Python編程知識,變身快樂的編程達人吧~

上節課的時候,留了一個小尾巴,不知道大家這幾天有沒有思考過這個問題呢?

“將主窗口的標題欄隱藏之後,發現無法關閉窗口。這應該怎麼解決?”

那麼,在這一節課裡,我們就講一下通過編碼的方式,調用系統方法,將窗口順利的關閉。

目前的登錄頁面還沒有製作完畢,還需要繼續使用登錄頁面的設計稿。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

登錄界面設計稿

如果大家需要複習一下信號和槽的知識,可以參考一下木辛老師之前的一篇教程,傳送門:《木辛老師的編程課堂:Python和Qt之頁面佈局實戰篇(2)》。

增加關閉按鈕

我們需要先按照設計稿的要求,在主窗口中添加一個關閉按鈕:“x”。

將關閉按鈕的素材圖片拷貝到當前項目的images目錄下,姑且名字就叫做:

close_windows.png 

打開Qt Designer開發工具,在彈出的對話框中點擊“打開”按鈕,選擇構建登錄頁面的.ui文件,在這裡是“LoginMainWin.ui”;

雙擊打開,或者單擊選中這個文件之後,點擊右下角的“打開”按鈕。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

打開登錄界面文件

成功打開之後,大家就可以看到之前尚未完成的登錄頁面。

拖拽左側Buttons區的QPushButton到主窗口,並按照設計稿將這個按鈕放置在560px x 10px的位置。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

通過右側的屬性編輯窗口,修改geometry屬性,將這個控件的X、Y、寬度和高度分別修改為:560、10、25、20。

起個名字

在之前的課程裡,並沒有提到這個關閉按鈕,所以,這個關閉按鈕目前還沒名沒姓,屬於一個黑戶!

那咱們給他起一個名字吧,按照之前的規定,這個關閉按鈕就叫它:

btn_close_window

同時,一定要修改這個控件的objectName屬性喲,否則無法通過btn_close_window這個名字找到這個控件。

具體方法就是:選中這個控件,在屬性編輯窗口中修改QObject中的objectName字段,將這個字段的值修改為btn_close_window就可以了。

好了,目前位置我們已經將關閉按鈕添加好了,保存程序;進入PyCharm軟件,右鍵點擊LoginMainWin.ui文件,在彈出來的菜單中選擇“External Tools”中的“PyUIC”插件,將.ui文件轉換為.py文件。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

轉換.ui文件為.py文件

此時,打開LoginMainWin.py文件,咱們一起看看代碼有沒有更新吧。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

查看python文件的變化

可以看到,代碼中出現了剛才添加的QPushButton控件,並通過對象的setGeometry方法,將對應的屬性成功傳遞。

按鈕加載圖片

接下來,需要將關閉按鈕的圖像放置上去了。

pixmap = QtGui.QPixmap(QtGui.QImage('images/close_windows.png'))
self.btn_close_window.setIcon(QtGui.QIcon(pixmap))
self.btn_close_window.setIconSize(QSize(10, 10))

我們通過實例化了一個QPixmap對象,加載了關閉按鈕的圖片文件,通過使用QPushButton的setIcon方法,將這個pixmap設置為QPushButton上的一個小圖標,同時還將圖標尺寸設置為10x10px,這樣看起來更美觀一些。

木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕

增加關閉按鈕之後的效果

看著挺不錯的,(#^.^#)。

好了,已經添加完關閉按鈕了,咱們這個頁面又做完一個新功能,收工吧。

咦······,怎麼還是沒法關閉這個窗口呀!

這是怎麼回事啊,已經將關閉按鈕添加上去了,為什麼還不能關閉呢?

是這樣的,我們僅僅是將按鈕放置到了主窗口上,並沒有給它添加事件;也就是說,在我們點擊了按鈕之後,它並不知道要做什麼,所以,只能呆呆的沒有反應。

教程開始的時候,提到過需要先複習一下“信號和槽”的相關知識,在這裡就需要用到了。

添加事件

我們需要給關閉按鈕添加事件,讓按鈕作為一個事件發起者,發送出一個關閉信號。

這個事件在什麼情況下發生呢?

當我們點擊關閉按鈕的時候,需要通知系統:我們想要關閉當前主窗口,請快快把主窗口關閉吧!

具體代碼可以這麼寫:

self.btn_close_window.clicked.connect(self.close)

調用QPushButton的clicked方法,並通過其connect,將這個信號發送給系統的close方法,完成關閉主窗口的操作。

邏輯就是這麼簡單的!

咱們重新梳理下流程哈

  1. 在這裡的定義關閉按鈕是信號發出者
  2. 當點擊關閉按鈕之後,會發射一個信號
  3. 通過connect方法,將這個按鈕的電機事件連接到了主窗口的關閉事件上
  4. 接收者窗體在接收到關閉信號之後,將運行槽函數close(),將主窗口關閉。

這麼一講,大家是不是就能理解信號和槽機制的運行機理了呢?

好了,咱們的關閉按鈕完工咯!

不對!發現一個問題,這個關閉按鈕四周有一個邊框呢,這個在設計稿裡可以沒有的。咱們需要想想辦法把這個邊框去掉吧。

這樣吧,今天咱們就把這個問題留作一個思考問題,請大家想想:如何去掉按鈕的邊框吧。

下一節課中,我們會引入一個新的概念,實現去掉按鈕的邊框。

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

快樂編程,快樂成長!

"

相關推薦

推薦中...