我只是将我的应用程序从 PyQt5 迁移到 PyQt6。据我了解,Qt 模块已在 Qt6 中删除。我有“Qt.AlignCenter”、“Qt.ToolButtonTextUnderIcon”、“Qt.LeftToolBarArea”等不再工作的东西。Qt6 中有此功能的替代方案吗?
我正在使用 python 2.7 和 Ubuntu 14.04。
我试图做这样才能有我的GUI里我pygame的窗口
在某些平台上,可以将 pygame 显示嵌入到已经存在的窗口中。为此,必须将环境变量 SDL_WINDOWID 设置为包含窗口 ID 或句柄的字符串。pygame显示初始化时检查环境变量
所以这就是我所做的:
from PyQt4 import QtGui, QtCore
import os
import subprocess
import sys
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setWindowModality(QtCore.Qt.ApplicationModal)
MainWindow.setFixedSize(800, 600)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.iniMap()
def iniMap(self):
command = "xprop -root _NET_ACTIVE_WINDOW"
output = subprocess.Popen(["/bin/bash", "-c", command], stdout=subprocess.PIPE)
activeWindowID = str(output.communicate()[0].decode("utf-8").strip().split()[-1])
os.environ['SDL_WINDOWID'] = activeWindowID
import pygame
pygame.init()
screen = pygame.display.set_mode((565, 437), pygame.NOFRAME)
class frmMain(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(frmMain, self).__init__(parent, flags=QtCore.Qt.FramelessWindowHint)
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.setupUi(self)
if __name__ == "__main__": …Run Code Online (Sandbox Code Playgroud)