如何更改菜单级联tkinter中的文本

时间:2018-06-03 10:05:38

标签: python tkinter

self.root = root
self.root.resizable(width=FALSE, height=FALSE)
self.root.title("Client")
self.menu_bar = Menu(self.root)
self.file_menu = Menu(self.menu_bar, tearoff=0)
self.file_menu.add_command(label="Log in", command=self.show_log_in)
self.file_menu.add_command(label="Reconnect", command=self.reconnect)
self.file_menu.entryconfig(1, state=DISABLED)
self.file_menu.add_command(label="Exit", command=self.root.destroy)
self.menu_bar.add_cascade(label="File", menu=self.file_menu)

我正在尝试将“文件”级联中的文本更改为不同的单词。这个命令是什么? 我试过了:

self.menu_bar.entryconfig(0, label="Different word")

但它不起作用。 (提出错误)。

4 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

label_text = StringVar()
self.menu_bar.add_cascade(label=label_text, menu=self.file_menu)
self.label_text.set("File")

def change_label(self,text):
    self.label_text.set(text)

免责声明:我没有测试此代码。

答案 1 :(得分:0)

当您实例化按钮时,您需要有一个命令来调用将更改文本的函数。例如:

ArrayList<Coordinate> coords = new ArrayList<>();
// start at the tower
coords.add(point.getCoordinate());
// next the edge of the wedge
int nSteps = 10;
// assume width of 10 degrees
double width = 10.0;
double dStep = width/nSteps;
for (int i = -nSteps; i < nSteps; i++) {
  CALC.setStartingGeographicPoint(point.getX(), point.getY());
  CALC.setDirection((azimuth +(i*dStep)), radius);
  Point2D p = CALC.getDestinationGeographicPoint();
  coords.add(new Coordinate(p.getX(), p.getY()));
}
// end at the tower
coords.add(point.getCoordinate());
poly = GF.createPolygon(coords.toArray(new Coordinate[] {}));

答案 2 :(得分:0)

File cascade是1个索引条目。这对我有用:

self.menu_bar.entryconfig(1, label="Different word")

答案 3 :(得分:0)

您可以在呼叫项目的标签上更改任何项目。 例如,从您的代码中,我将“登录”的名称更改为“不同的单词”,并将“重新连接”的状态更改为在python3中禁用。

self.file_menu.entryconfig("Log in",label="Different word")
self.file_menu.entryconfig("Reconnect",state=DISABLE)