[英]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.