Привет, столкнулся с проблемой портирования замечательного примера 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 
  
    
        Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
      
Похожие темы
- Форум Видео перестает отображаться после выхода из fullscreen (2016)
 - Форум Не получается создать label в слоте. Испровобовал все (2015)
 - Форум Не появляется контекстная подсказка. Просто пустой виджет. (2015)
 - Форум python3 + PyQt5 + PyOpenGL = black screen (2014)
 - Форум События в PyQT и многопоточность в Python (2015)
 
- Форум Как добавить окно в mdiArea d PyQt5? (2016)
 - Форум Как держать картинку поверх всех программ и окон? (2016)
 - Форум Быдлокод Pygtk (2012)
 - Форум QComboBox с checkable элементами не работает в некоторых окружениях (2016)
 - Форум Не получается с кнопкой изменить содержание внутри QLineEdit с помощью setText (2015)