Привет, столкнулся с проблемой портирования замечательного примера tux с qt3 на qt4. Почитал гугл, ответа не нашел, проблем много но основная это то что не грузиться картинка нормально в бэкграунд окна, привожу код на питоне.
qt3:
#!/usr/bin/env python
import sys
from qt import *
class Tux(QWidget):
def __init__(self,parent=None,name=None,f=0):
QWidget.__init__(self)
#self.setWFlags(f)
def main(argv):
app = QApplication(argv)
fn = QString("tux.png")
if not QFile.exists(fn):
sys.exit(1)
img = QImage(fn)
p = QPixmap()
p.convertFromImage(img)
if not p.mask():
if img.hasAlphaBuffer():
bm = QBitmap()
bm = img.createAlphaMask()
p.setMask(bm)
else:
bm = QBitmap()
bm = img.createHeuristicMask()
p.setMask(bm)
w = Tux(0,0,Qt.WStyle_Customize|Qt.WStyle_NoBorder)
w.setPaletteBackgroundPixmap(p)
w.setFixedSize(p.size())
if p.mask():
w.setMask(p.mask())
w.show()
app.setMainWidget(w)
app.exec_loop()
if __name__ == "__main__":
main(sys.argv)
Далее код на qt4:
#!/usr/bin/env python
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class Tux(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self,parent)
def main(argv):
app = QApplication(argv)
fn = QString("tux.png")
if not QFile.exists(fn):
sys.exit(1)
img = QImage(fn)
p = QPixmap()
p.fromImage(img) # возможно проблема здесь
if not p.mask():
if img.hasAlphaBuffer():
bm = QBitmap()
bm = img.createAlphaMask()
p.setMask(bm)
else:
bm = QBitmap()
bm = img.createHeuristicMask()
p.setMask(bm)
w = Tux()
palette = QPalette()
palette.setBrush(w.backgroundRole(), QBrush(p))
w.setPalette(palette)
#w.setFixedSize(p.size())
if p.mask():
w.setMask(p.mask())
w.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main(sys.argv)
Очень интересует создания окошка произвольной формы, не писать же на третьем qt изза этого.
Ответ на:
комментарий
от alt0v14
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум KDevelop. Почти всё сегфолтит. (2004)
- Форум Не получается создать label в слоте. Испровобовал все (2015)
- Форум python3 + PyQt5 + PyOpenGL = black screen (2014)
- Форум Видео перестает отображаться после выхода из fullscreen (2016)
- Форум Не получается с кнопкой изменить содержание внутри QLineEdit с помощью setText (2015)
- Форум События в PyQT и многопоточность в Python (2015)
- Форум Как добавить окно в mdiArea d PyQt5? (2016)
- Форум Быдлокод Pygtk (2012)
- Форум Вопрос по event в qt. Реализовал вопрос при выходе, как мне кажется, не самым лучшим образом. (2015)
- Форум Делаю калькулятор. Как реализовать, чтобы считало не когда нажимаю на button, а во процессе ввода? (2015)