Хромоподобная строка состояния в Qt - PullRequest
3 голосов
/ 02 июня 2010

Я не большой в создании GUI, и, как правило, моя философия такова: я не создаю их, или я делаю их максимально простыми (и убеждаю себя, что это лучше для удобства использования)

Для моего текущего проекта я использую Qt из Python (PyQt), и я хочу начать добавлять некоторые элементы графического интерфейса без загромождения интерфейса.

Моя идея состоит в том, чтобы создать эти элементы как вид плавающих фигурных виджетов, которые появляются только при необходимости; почти как строка состояния (и строка поиска) в Chrome.

Существуют ли какие-либо стандартные API-интерфейсы, позволяющие создавать такой интерфейс?

1 Ответ

5 голосов
/ 11 июня 2010

Это не очень сложно. Если вы хотите что-то вроде строки состояния в Chrome, вам просто нужно иметь QFrame внизу окна и показывать или скрывать его, когда вам это нужно.

У вас есть 2 варианта здесь, добавить это как часть вашего макета окна, поэтому все элементы перемещаются вверх, когда он отображается. Или вы можете иметь, если плавающий, поэтому он будет отображаться в верхней части предметов. Для второго варианта вам нужно создать QFrame с окном в качестве родителя, а затем в окне resizeEvent установить геометрию фрейма.

Это пример второго подхода:

void MyWindow :: resizeEvent (событие QResizeEvent *) { frame.setGeometry (0, this-> height () - frame.sizeHint (). height (), this-> width (), frame.sizeHint (). height ()); }

Надеюсь, это поможет.

...