iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0
Software Development

[Python QT] 玩玩 Pyside 的各種功能系列 第 15

【Day15】QToolButton 續 + 15 天心得

  • 分享至 

  • xImage
  •  

因為感覺 ToolButton 有很多東西可以討論, 所以找了一下有沒有常用的應用程式介面可以讓我參考, 最後打算用 Google 文件當作今天程式的參考
不過主要注意力在 QToolButton 的設定, 所以今天應該只會達成文件裡檔案功能的長相
至於編輯部份大概要等明天

import sys
from PySide6.QtWidgets import *
from PySide6.QtCore import *
from PySide6.QtGui import *

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()

        tb = QToolButton(self)
        tb.setText("檔案")
        tb.setAutoRaise(True)
        tb.setArrowType(Qt.NoArrow)
        tb.setCursor(Qt.PointingHandCursor)
        menu = QMenu("Menu", self)
        menu.setCursor(Qt.PointingHandCursor)
        newMenu = QMenu("新文件", self)
        newMenu.setIcon(QIcon("document.png"))
        doc = QAction(QIcon("document (1).png"), "文件", self)
        useExample = QAction("使用範本", self)
        newMenu.addAction(doc)
        newMenu.addAction(useExample)
        open = QAction("開啟", self)
        makeCopy = QAction("建立副本", self)
        menu.addMenu(newMenu)
        menu.addAction(open)
        menu.addAction(makeCopy)

        tb.setMenu(menu)
        tb.setPopupMode(QToolButton.InstantPopup)

if __name__ == "__main__":
    app = QApplication([])

    widget = MyWidget()
    widget.resize(300, 300)
    widget.show()

    sys.exit(app.exec())

圖示取得位置: Flaticon
成果如下
https://ithelp.ithome.com.tw/upload/images/20220917/20151144HTacDghKdS.png
用截圖的方式看不出來我讓鼠標移到 ToolButton 跟 Menu 時會自動變成PointingHandCursor

tb.setCursor(Qt.PointingHandCursor)

這句可以變換鼠標, 非常好用, 是 Qt 內建的鼠標


15 天心得
其實第一天就應該要打的, 這次是我第一次參加鐵人賽, 也是第一次組團參加
而我每天的主題都是當天想, 文章當天寫, 之前還開始前原本想存一些草稿之後用, 沒想到甚麼東西都還沒寫眨個眼就到開賽時間
真的慶幸自己有報團參加, 不然以我的個性, 大概 10 天不到就開始懶得發文了
但是這就苦了我的隊友們, 天天在 10 點時 line 我跟我說加油, 拖延症啊... 即使假日還是壓底線發文
但是這 15 天真地讓我多學到了許多, 有點滿足了我對 Qt 的好奇心, 但是, 也發現自己碰到的功能真的少得可憐, 又想繼續深入下去, 現在過 1/2 了, 突然覺得 30 天不夠 XD


上一篇
【Day14】QToolButton
下一篇
【Day16】QToolButton 續續
系列文
[Python QT] 玩玩 Pyside 的各種功能31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言