apologize828
Март 5, 2010 21:55:16
Привет всем!
Хочу сделать следующее:
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
Март 6, 2010 09:24:01
В конструктор виджета можно передавать флаги, влияющие на его поведение. Точно помню, что можно убирать красный крестик, а на счет 1) не знаю. Это надо поискать в документации. А еще в примерах к PyQt есть интересная прога, которая показывает все варианты формирования окон/диалогов (где точно лежит не помню). Вобщем если порыть в этом направлении, то что-нибудь нужное обязательно найдется. Дерзайте.
apologize828
Март 6, 2010 10:10:18
dartNNN
В конструктор виджета можно передавать флаги, влияющие на его поведение. Точно помню, что можно убирать красный крестик, а на счет 1) не знаю. Это надо поискать в документации. А еще в примерах к PyQt есть интересная прога, которая показывает все варианты формирования окон/диалогов (где точно лежит не помню). Вобщем если порыть в этом направлении, то что-нибудь нужное обязательно найдется. Дерзайте.
Ок. Спасибо,буду пока копать про флаги!
А эта прога в самой документации PyQt как пример лежит?Если да то я скорее всего сам найду)))А если нет и ты вдруг вспомнишь,где эта чуда прога, кинь плиз ссылку))
apologize828
Март 6, 2010 12:40:02
Все решил проблему самостоятельно
Получил то что хотел и даже лучше)))Вот ссылки:
http://qt.nokia.com/doc/4.6/widgets-windowflags.htmlhttp://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
Март 7, 2010 21:04:21
может кому пригодится:
мучался той же фигней, но окно в QMdiArea
для QMdiSubWindow все работает не так, как для обычных окон - текст меню не русифицируется, меню не отключается
с помощью QMdiArea.addSubWindow(widget, Qt.CustomizeWindowHint|Qt.WindowTitleHint|Qt.WindowCloseButtonHint) удалось убрать ненужные мне Min/Max команды, но Stay On Top убить не удалось
решил отложить до лучших времен, и только сейчас нашел выход: QMdiSubWindow.setSystemMenu(QMenu) - можно сделать ЛЮБОЕ меню
ЗЫ: рано радовался - побочные эффекты в виде прозрачного (есть только рамка) окна поверх моего. Тулбар под ним не работает. Пропадает при щелчке, после этого все работает как надо. Глюки…
еще ЗЫ: использовал setSystemMenu(None) - работает. Поживем пока так :)