繁体   English   中英

PyQt5 自动调整 tkinter window 的大小

[英]PyQt5 resizes tkinter window automatically

tkinter Z05B8C74CBD96FFB2DE4C1A35270 中按下按钮后,我正在尝试使用PyQt5打开 web 页面。

一旦新的 window 打开,它就会永久调整(在这种情况下缩小) tkinter window 的大小。

重现此代码所需的最少代码

import sys
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import *
from PyQt5.QtWidgets import QApplication
from tkinter import *
from threading import Thread

class Web:
    def __init__(self,url,title='',size=False):
        self.title=title
        self.url=url
        self.size=size

        self.app=QApplication(sys.argv)
        self.web=QWebEngineView()
        self.web.setWindowTitle(self.title)
        self.web.load(QUrl(self.url))
        if size:
            self.web.resize(self.size[0],self.size[1])
    
    def open(self):
        self.web.show()
        sys.exit(self.app.exec_())

def launch():
    web=Web('https://www.example.com')
    web.open()

root=Tk()

button=Button(root,text='open',command=lambda:Thread(target=launch).start())
button.pack(padx=100,pady=100)

root.mainloop()

图片供参考

两个图像具有相同的高度。

在此处输入图像描述 在此处输入图像描述

我想知道原因和防止这种情况的方法。

我自己已经弄清楚了。 PyQt更改默认情况下不会发生的 dpi 感知tkinter 因此,一旦PyQt在同一主循环中启动, tkinter window 就会自行调整大小。

由于我在 windows 机器上,使用它解决了问题。

ctypes.windll.shcore.SetProcessDpiAwareness(1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM