python - Getting tkinter Messagebox at top of the screen in python
问题描述
I need message box to be displayed on the top of the screen. So, I tried:
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
root = Tk()
top_box = Toplevel(root)
messagebox.showerror("title","message",parent=top_box)
root.mainloop()
The result I got is: taskbar gives attraction that something new has been open.
But it doesn't show on the screen. (Should be visible first/ Priorty to be given to it..)
解决方案
该messagebox
模块使用Windows 上的平台原生函数来创建其对话框。它独立于任何Toplevel
小部件工作。如果您想使用 来创建自定义错误对话框,Toplevel
您可以这样做,并且可以使用 将其移动到窗口管理器的顶部Toplevel.lift(self)
。
没有选项可以使消息框出现在所有其他窗口的顶部。唯一的方法是使用Toplevel
. 像这样的东西应该可以解决问题,前提是您tk.Tk
在程序中的其他地方创建了一个:
import tkinter as tk
class Error(tk.Toplevel):
def __init__(self, message):
tk.Toplevel.__init__(self)
tk.Label(self, text=message).grid(row=0, column=0)
tk.Button(self, command=self.destroy, text="OK").grid(row=1, column=0)
self.lift() # Puts Window on top
self.grab_set() # Prevents other Tkinter windows from being used
def showerror(string):
Error(string)
if __name__ == '__main__':
w = tk.Tk()
showerror("Help!")
w.mainloop()
推荐阅读
- django - 我的引导下拉项目不可点击(显示)
- c++ - 在 C++ 中打印 3 维数组的内容 .. 它的第 1 维来自索引,第 2 维来自另一个数组,第 3 维来自另一个数组?
- sql - 使用嵌套数组将 JSON 文件导入 SQL Server 表
- css - SASS:如何在数组中添加值?
- pandas - 加速 pandas 到 sql 以同时写入多个表
- java - 是否可以在 Groovy 中使用不是脚本的委托
- php - Docker, Symfony nginx/php-fpm 初始化很慢
- javascript - 如果字符串不为空,则在特殊字符后检查字符串中的值
- python - 使用 Python Django 我怎么能做自定义函数,保存到 db 并返回 json 响应
- python - 试图用星星创建一个 x 图案