Python PyQt5.QtWidgets导致tkinter输入行中出现退格问题
我已经试着找到我问题的答案,但没有成功 我第一次尝试在Python3.6上使用带有tkinter的GUI 我为您创建了一个小示例:Python PyQt5.QtWidgets导致tkinter输入行中出现退格问题,python,Python,我已经试着找到我问题的答案,但没有成功 我第一次尝试在Python3.6上使用带有tkinter的GUI 我为您创建了一个小示例: import tkinter as tk import PyQt5.QtWidgets RateFenstergrossh=0.75 RateFenstergrossb=0.75 app = PyQt5.QtWidgets.QApplication([]) # the bug doesn't occur without this line screen_wi
import tkinter as tk
import PyQt5.QtWidgets
RateFenstergrossh=0.75
RateFenstergrossb=0.75
app = PyQt5.QtWidgets.QApplication([]) # the bug doesn't occur without this line
screen_width = app.desktop().screenGeometry().width()
screen_height = app.desktop().screenGeometry().height()
def vp_start_gui():
global root
root = tk.Tk()
top = Toplevel1(root)
root.mainloop()
class Toplevel1:
def __init__(self, top=None):
top.geometry("+%d+%d"%(screen_width/2 - screen_width*RateFenstergrossb/2, screen_height/2 - screen_height*RateFenstergrossh/2))
self.Entry = tk.Entry(top)
self.Entry.pack(padx=20,pady=20)
if __name__ == '__main__':
vp_start_gui()
如果您键入一些字符并尝试使用退格删除它们,则输入行中将出现一个小矩形。如果打印此字符,程序将打印。如果我不使用包import PyQt5.qtwidts
和函数PyQt5.qtwidts.QApplication([])
则不会发生错误
我真的不明白这个错误。也许有人能帮我解决这个问题。多亏了这两条评论。我学会了永远不要混合tkinter和PyQt。我的解决办法是现在
import tkinter as tk
RateFenstergrossh=0.75
RateFenstergrossb=0.75
def vp_start_gui():
global root
root = tk.Tk()
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
top = Toplevel1(root)
root.mainloop()
class Toplevel1:
def __init__(self, top=None):
top.geometry("+%d+%d"%(screen_width/2 - screen_width*RateFenstergrossb/2, screen_height/2 - screen_height*RateFenstergrossh/2))
self.Entry = tk.Entry(top)
self.Entry.pack(padx=20,pady=20)
if __name__ == '__main__':
vp_start_gui()
解决方案:我必须用电脑阅读屏幕大小
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
为什么要在一个程序中同时使用Tkinter和Qt?这是两种完全不同的编写GUI的方法。“不要使用PyQt5…错误不会发生。”:这就是不这样做的原因。你为什么选择混合这两个模块?我尝试了这个方法,因为我发现这个方法可以使窗口居中。也许如果你理解这个问题,你知道一个更好的方法可以使窗口在屏幕上居中,或者在没有PyQt5的情况下读取屏幕大小