有人可以解釋一下如何根據圖像中某個對象的形狀創建一個窗口,例如我有一棵樹的圖像,使用我需要的創建一棵樹形狀的窗口..用qt創建一個形狀的窗口
5
A
回答
4
After a long search , myself found a good solution , check out this ..
#include <QtGui>
class myMainWindow:public QMainWindow
{
public:
myMainWindow():QMainWindow()
{
setMask((new QPixmap("saturn.png"))->mask());
QPalette* palette = new QPalette();
palette->setBrush(QPalette::Background,QBrush(QPixmap("saturn.png")));
setPalette(*palette);
setWindowFlags(Qt::FramelessWindowHint);
QWidget *centralWidget = new QWidget(this);
QGridLayout *layout = new QGridLayout();
centralWidget->setLayout(layout);
QPushButton* button1 = new QPushButton("Button 1");
button1->setFixedSize(80,50);
layout->addWidget(button1,0,0);
setCentralWidget(centralWidget);
};
~myMainWindow(){};
};
int main(int argc, char **argv)
{
QApplication app(argc, argv);
myMainWindow *window = new myMainWindow();
window->resize(600, 316);
window->show();
return app.exec();
}
2
Here是用半透明背景顏色製作小部件的配方。通過使背景完全透明從那裏展開,然後將樹形圖像顯示爲背景圖像。請注意,在佈置其子元素方面,小部件的行爲仍然像矩形小部件,因此您可能需要在樹形狀內使用一些自定義佈局來處理此問題。
0
開始從文檔的QWidget::setMask
。它有一個採用QBitmap的版本和一個採用QRegion的版本。這是獲取透明小部件的基本功能。該工具包還包括一個使用QRegion版本的時鐘示例 - 我懷疑位圖是一樣容易。
相關問題
- 1. qt創建者從一個窗口到另一個窗口的控制
- 2. 何時創建qt窗口?
- 3. 如何創建一個Qt窗口,就像一個消息框?
- 4. 創建方形窗口C++
- 5. 如何在不同的QT線程中創建一個窗口?
- 6. 在wxPython中創建一個形狀窗口最簡單的方法是什麼?
- 7. Qt創建者:按鈕點擊Signal彈出一個窗口
- 8. 在QT中創建一個對話窗口持久化C++
- 9. 從獨立線創建的形狀創建一個多邊形
- 10. Qt創建窗口小部件
- 11. 如何創建從一個形狀到另一個形狀的變形效果?
- 12. 如何創建一個窗口,用uic模塊打開另一個窗口? Qt-Designer和Python
- 13. Qt QML - 在Qt中創建我自己的形狀
- 14. 通過圖形函數在一個窗口中創建的圖
- 15. Qt的圖形用戶界面的創建,窗口小部件調整
- 16. 創建一個新的cocoapods窗口
- 17. 創建一個沒有窗口的NW.js
- 18. 窗口內的QT窗口?
- 19. 創建一個像窗口的桌面主窗口
- 20. 創建一個只能在父窗口內拖動的窗口
- 21. 從圖像Qt窗口小部件形狀
- 22. 在另一個矩形內創建一個形狀
- 23. Qt的閉幕前一個窗口
- 24. 創建一個只有兩個圓邊的矩形形狀
- 25. 如何創建一個多窗口小部件Qt應用程序
- 26. 在GTK#中創建隱形窗口?
- 27. 從窗口創建圖形全尺寸
- 28. 與QT的多個窗口
- 29. 如何讓Qt圖形出現在同一個窗口中?
- 30. 從代碼創建另一個窗口?
不錯!對於其他類似的東西:請參閱時鐘示例:http://qt-project.org/doc/qt-4.8/widgets-shapedclock-shapedclock-cpp.html 對於PySide,它在這裏:http://qt.gitorious.org用於閃屏/pyside/pyside-examples/blobs/ce9b2dfe456f38a166314dc2807a6b27cd944127/examples/widgets/shapedclock.py 簡單的例子: 'self.img_Check =的QPixmap( 「資源/ some_transparent_image.png」)\t \t \t \t self.lab = QSplashScreen(self.img_Check) \t \t self.lab.setWindowFlags(Qt.Tool | Qt.WindowStaysOnTopHint) \t \t self.lab.setMask(self.img_Check.mask()) \t \t self.lab.setPixmap(self.img_Check) \t \t self.lab.show()' – SilentSteel 2013-08-11 15:39:15
不會泄漏每個構造上的QPixmap嗎? – Ruslan 2017-10-20 21:25:22
@Ruslan是的,但主窗口只在大多數qt應用程序中創建一次 – 2017-10-21 06:35:07