MyGUI.setStyleSheet设置border-image格式 中文回答我
时间: 2023-11-28 15:03:49 浏览: 37
MyGUI.setStyleSheet方法可以用来设置应用程序中控件的样式表。可以通过设置border-image属性来设置控件边框的图像。以下是一个示例:
```
QPushButton {
border-image: url(:/images/border.png) 10 10 10 10 stretch stretch;
}
```
在上面的代码中,我们设置了一个QPushButton控件的边框图像为border.png。10 10 10 10表示边框的宽度,stretch stretch表示图片的拉伸模式。当图片的宽度和高度小于边框的宽度时,会自动进行拉伸以填充整个边框。
相关问题
下列代码中,文本框能显示,其它控件如notebook都不能显示。请给出修改后的代码。import tkinter as tk import tkinter.font as tkFont from tkinter.scrolledtext import ScrolledText # 导入ScrolledText from tkinter.filedialog import * from tkinter.ttk import * from tkinter import * import tkinter.messagebox from pystray import MenuItem, Menu from PIL import Image import pandas as pd class tkinterGUI(): root = None # 定义为类属性,可以在类的多个实例中共享 def __init__(self, geometry): pass def test(self): pass def create_root_win(self): self.root, self.文本框_主消息 = self.create_toplevel_win(True, "软件标题", "430x670", self.test, False, False) self.root.mainloop() # 在 create_root_win 方法中调用 mainloop 方法,显示窗口 def root_win_add1(self): if self.root is None: self.create_root_win() self.文本框_主消息.insert("1.0","efdssfdadsfasf") # 主内容区域 notebook = Notebook(self.root) notebook.pack(fill=tk.BOTH, expand=True) def create_toplevel_win(self,if_root,title,size,close_cmd,textbox_n,if_resize_width=True,if_resize_heigh=True): if if_root: mygui=tk.Tk() else: mygui=tk.Toplevel(self.root) 窗口win启动 = True mygui.title = title mygui.protocol('WM_DELETE_WINDOW', close_cmd) # 把点击x关闭窗口变成不要关闭并最小化到托盘 # 设置大小 居中展示 #win.bind("<Configure>", lambda root:win_mouse_release(root)) mygui.resizable(width=if_resize_width, height=if_resize_heigh) mygui.wm_attributes('-topmost', 1) #mygui.geometry(size+ "+" + str(self.root.winfo_x() + self.root.winfo_width()) + "+" + str(self.root.winfo_y())) mygui.geometry(size) tbox = ScrolledText(mygui) #self.eval("文本框"+title) = ScrolledText(self.win) tbox.place(relx=0.01, rely=0.18, relwidth=0.99, relheight=0.8) mygui.mainloop() return mygui,tbox # a,b=400,650 def show_msg_in_toplevel(self): self.win_msg,self.win_msg_tb= self.create_toplevel_win(self.root,"实时解盘","350x670",self.隐藏到任务栏,False,False) if __name__=="__main__": root=tkinterGUI("360x670") root.root_win_add1()
可能是因为notebook控件没有被正确地添加到窗口中。以下是修改后的代码:
import tkinter as tk
import tkinter.font as tkFont
from tkinter.scrolledtext import ScrolledText
root = tk.Tk()
# 创建notebook控件
notebook = tk.ttk.Notebook(root)
# 创建文本框控件
text = ScrolledText(root)
# 将文本框添加到notebook中
notebook.add(text, text="文本框")
# 将notebook添加到窗口中
notebook.pack(expand=True, fill="both")
root.mainloop()
我的gui包装在一个class里,self.window = sg.Window("RVC - GUI", layout=layout)这是我的gui信息,我该如何使用close_callback呢
如果您的GUI已经包装在一个类中,您可以将`close_callback`函数作为实例方法添加到该类中,然后在创建窗口时传递该实例方法作为`close_callback`参数。
以下是一个示例代码,其中我们创建了一个名为`MyGUI`的类,并将`on_close`方法作为`close_callback`参数传递给`sg.Window`:
```python
import PySimpleGUI as sg
class MyGUI:
def __init__(self):
layout = [[sg.Text('Hello from PySimpleGUI')], [sg.Button('Exit')]]
self.window = sg.Window('Window Title', layout, close_callback=self.on_close)
def run(self):
while True:
event, values = self.window.read()
if event in (None, 'Exit'):
break
self.window.close()
def on_close(self):
print('Window is closing')
if __name__ == '__main__':
gui = MyGUI()
gui.run()
```
在这个代码中,我们创建了一个名为`MyGUI`的类,该类包含一个名为`on_close`的实例方法。我们在`__init__`方法中创建了一个窗口,并将`on_close`方法作为`close_callback`参数传递给`sg.Window`。在`run`方法中,我们使用一个while循环来监听窗口事件,并在用户点击退出按钮或关闭窗口时退出循环并关闭窗口。
您可以将`on_close`方法替换为您自己的逻辑,以在窗口关闭时执行特定的操作。