Найти - Пользователи
Полная версия: Вопрос по компонентам PyQt4 на примере QMessageBox
Начало » GUI » Вопрос по компонентам PyQt4 на примере QMessageBox
1
apologize828
Привет всем!
Хочу сделать следующее:
1)Чтобы иконки в заголовке формы вообще не было видно и был виден только текст заголовка,
2)И чтобы крестик был не только неактивным,но и еще не был виден(короче чтобы его невозможно было даже нажать)
код такой:
#!/usr/bin/python/
#-*- coding: utf-8 -*-
from PyQt4 import QtGui
import sys

class My_Widget(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.resize(100,100)
buttons_kompanovka=QtGui.QVBoxLayout(self)
button_my=QtGui.QPushButton(“Войти”,self)
button_my2=QtGui.QPushButton(“Выйти”,self)
buttons_kompanovka.addWidget(button_my)
buttons_kompanovka.addWidget(button_my2)
button_my2.clicked.connect(sys.exit)
button_my.clicked.connect(zapysk)

class My_MessageBox(QtGui.QMessageBox):
def __init__(self):
QtGui.QMessageBox.__init__(self)
self.setWindowTitle(“Ошибка”)
self.setText(“Чтобы попробовать снова нажмите кнопку Повторить”)
self.setIcon(QtGui.QMessageBox.Warning)
self.addButton(“Повторить”,QtGui.QMessageBox.AcceptRole)

def zapysk():
my_forma=My_MessageBox()
my_forma.show()
my_forma.exec_()

app=QtGui.QApplication(sys.argv)
my_home=My_Widget()
my_home.show()
app.exec_()

Подскажите как сделать пункт 1 и 2
dartNNN
В конструктор виджета можно передавать флаги, влияющие на его поведение. Точно помню, что можно убирать красный крестик, а на счет 1) не знаю. Это надо поискать в документации. А еще в примерах к PyQt есть интересная прога, которая показывает все варианты формирования окон/диалогов (где точно лежит не помню). Вобщем если порыть в этом направлении, то что-нибудь нужное обязательно найдется. Дерзайте.
apologize828
dartNNN
В конструктор виджета можно передавать флаги, влияющие на его поведение. Точно помню, что можно убирать красный крестик, а на счет 1) не знаю. Это надо поискать в документации. А еще в примерах к PyQt есть интересная прога, которая показывает все варианты формирования окон/диалогов (где точно лежит не помню). Вобщем если порыть в этом направлении, то что-нибудь нужное обязательно найдется. Дерзайте.
Ок. Спасибо,буду пока копать про флаги!
А эта прога в самой документации PyQt как пример лежит?Если да то я скорее всего сам найду)))А если нет и ты вдруг вспомнишь,где эта чуда прога, кинь плиз ссылку))
apologize828
Все решил проблему самостоятельно
Получил то что хотел и даже лучше)))Вот ссылки:
http://qt.nokia.com/doc/4.6/widgets-windowflags.html
http://stackoverflow.com/questions/2059359/how-to-remove-maximize-button-in-mac-os-x-tool-window-in-qt
и вот собственно где нашел то что надо:
http://www.qtcentre.org/threads/9348-Disable-Close-button-%28X%29-of-a-QDialog

Ну и вот код который вам понадобится чтобы реализовать пункты 1 и 2:
Всего то одна строчка)))
setWindowFlags(QtCore.Qt.FramelessWindowHint|QtCore.Qt.WindowTitleHint)
villager
может кому пригодится:
мучался той же фигней, но окно в QMdiArea
для QMdiSubWindow все работает не так, как для обычных окон - текст меню не русифицируется, меню не отключается
с помощью QMdiArea.addSubWindow(widget, Qt.CustomizeWindowHint|Qt.WindowTitleHint|Qt.WindowCloseButtonHint) удалось убрать ненужные мне Min/Max команды, но Stay On Top убить не удалось
решил отложить до лучших времен, и только сейчас нашел выход: QMdiSubWindow.setSystemMenu(QMenu) - можно сделать ЛЮБОЕ меню

ЗЫ: рано радовался - побочные эффекты в виде прозрачного (есть только рамка) окна поверх моего. Тулбар под ним не работает. Пропадает при щелчке, после этого все работает как надо. Глюки…


еще ЗЫ: использовал setSystemMenu(None) - работает. Поживем пока так :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB