Czy ktoś może mi wyjaśnić, jak zrobić okno w qt zgodnie z kształtem jakiegoś obiektu na obrazku, na przykład mam obraz drzewa, używając tego, czego potrzebuję aby utworzyć okno w kształcie drzewa ..Utwórz okno w qt z kształtem z obrazu
5
A
Odpowiedz
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 to przepis na wykonanie widżetu z półprzezroczystym kolorem tła. Po prostu rozwiń stamtąd, zwiększając przezroczystość tła, a następnie wyświetl obraz drzewa jako obraz tła. Zauważ, że widżet będzie nadal zachowywał się jak widżet prostokątny w odniesieniu do układania jego elementów potomnych, więc prawdopodobnie będziesz musiał zająć się tym za pomocą niestandardowego układu wewnątrz kształtu drzewa.
0
zacząć od docs dla QWidget::setMask
. Ma wersję, która pobiera QBitmap i posiada QRegion. Jest to podstawowa funkcja uzyskiwania przezroczystego widgetu. Zestaw narzędzi zawiera również przykład zegara z wersją QRegion - podejrzewam, że bitmapa jest równie łatwa.
Powiązane problemy
- 1. Utwórz wektor z obrazu
- 2. Qt - Jak zbudować okno z wieloma zakładkami?
- 3. Utwórz tabulatory ruchome w Qt
- 4. Okno teksturowane kakao w Qt
- 5. Obrót obrazu w Qt
- 6. Utwórz UIImageView z częścią pliku obrazu
- 7. CSS Diamentowe problemy z centralnym kształtem strony
- 8. Utwórz dokument PDF do drukowania w Qt z szablonu
- 9. Jak wyskoczyć osobne okno z zakładki Widget w PySide Qt
- 10. Jak wyświetlić inne okno z mainwindow w QT
- 11. Otwórz nowe okno dialogowe w qt
- 12. Utwórz barplot z data.frame
- 13. Utwórz plik UTF-8 w Qt
- 14. Utwórz nowe okno cmd.exe z poziomu innego polecenia cmd.exe
- 15. Utwórz część przezroczystego obrazu
- 16. Utwórz okno dialogowe NumberPicker w preferencjach
- 17. Jak stworzyć okno Qt zachowywać się jak okno wiadomości?
- 18. Modalne okno dialogowe Qt i proces główny
- 19. Utwórz instalację Linux dla aplikacji Qt
- 20. Utwórz pakiet .deb dla projektu Qt
- 21. Utwórz łącze z elektronu otwartego w przeglądarce
- 22. Utwórz menu przypominające okno na OS X
- 23. Numpy `ValueError: operandy nie mogły być nadawane razem z kształtem ...`
- 24. Ustawianie obrazu na etykiecie w Qt
- 25. Utwórz UiImage z NSData
- 26. Utwórz UIImage z URL w iOS
- 27. Chcesz wyskoczyć okno z akcją w CakePHP
- 28. Qt - (? Powolne repaint) Przeprowadzka Frameless okno
- 29. Qt C++ okno minimalizacji i maksymalizacji
- 30. Qt: Jak uzyskać aktualnie uruchomione okno?
Nice! Inne podobne rzeczy: Zobacz przykład zegara: http://qt-project.org/doc/qt-4.8/widgets-shapedclock-shapedclock-cpp.html Dla PySide jest tutaj: http://qt.gitorious.org /pyside/pyside-examples/blobs/ce9b2dfe456f38a166314dc2807a6b27cd944127/examples/widgets/shapedclock.py Prosty przykład dla ekranów powitalnych: 'self.img_Check = QPixmap ("zasoby/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
Czy to nie przeciekło' QPixmap' na każdej konstrukcji? – Ruslan
@Ruslan tak, ale mainwindow jest tworzony tylko raz w większości aplikacji qt. –