Как программно заменить иконку меню настроек буквой

Вы можете попробовать использовать методы winfo_screenwidth и winfo_screenheight, которые возвращают соответственно ширину и высоту (в пикселях) вашего экземпляра Tk (окно), а с помощью некоторой базовой математики вы можете центрировать свое окно:

import tkinter as tk
from PyQt4 import QtGui    # or PySide

def center(toplevel):
    toplevel.update_idletasks()

    # Tkinter way to find the screen resolution
    # screen_width = toplevel.winfo_screenwidth()
    # screen_height = toplevel.winfo_screenheight()

    # PyQt way to find the screen resolution
    app = QtGui.QApplication([])
    screen_width = app.desktop().screenGeometry().width()
    screen_height = app.desktop().screenGeometry().height()

    size = tuple(int(_) for _ in toplevel.geometry().split('+')[0].split('x'))
    x = screen_width/2 - size[0]/2
    y = screen_height/2 - size[1]/2

    toplevel.geometry("+%d+%d" % (x, y))
    toplevel.title("Centered!")    

if __name__ == '__main__':
    root = tk.Tk()
    root.title("Not centered")

    win = tk.Toplevel(root)
    center(win)

    root.mainloop()

Я вызываю метод update_idletasks, прежде чем извлекать ширину и высоту окна, чтобы гарантировать верность возвращаемых значений.

Tkinter не видит, есть ли два или более монитора расширенного горизонтального или вертикального. Таким образом, вы получите общее разрешение всех экранов вместе, и ваше окно окажется где-то посередине экранов.

PyQt , с другой стороны, также не видит среду с несколькими мониторами, но она получит только разрешение монитора Top-Left (Imagine 4 monitor, 2 up и 2 вниз, делая квадрат). Таким образом, это делает работу, помещая окно в центр этого экрана. Если вы не хотите использовать оба параметра, PyQt и Tkinter , возможно, лучше начать с PyQt с начала.

0
задан Zoe 3 March 2019 в 09:02
поделиться

1 ответ

Вы можете заменить значок переполнения следующим образом:

val drawable = ContextCompat.getDrawable(this, R.drawable.your_vector_drawable)
mToolbar.overflowIcon = drawable

И затем установите mToolbar в качестве панели действий поддержки. Теперь, чтобы заменить его буквой или цифрой, я думаю, сначала нужно создать вектор, который можно нарисовать, или png этого.

0
ответ дан user8468173 3 March 2019 в 09:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: