Окно pyqt, похожее на стиль Win32 - PullRequest
2 голосов
/ 15 июля 2011

Я пытаюсь портировать приложение Win32 на Python, используя pyqt для GUI, но я не могу получить простое окно с текстовой меткой и полем редактирования, например, следующий простой стиль Win32 (в основном WS_EX_CLIENTEDGE):

Example

Я играл с setFrameStyle (то есть с использованием разных стилей и затонувших - и затем для хорошей меры всех других разумных комбинаций) двух виджетов и использовал setContentsMargins () для обнуления дозаставить его заполнить все пространство, но окно qt все равно выглядит совсем по-другому в отношении границы.

Ответы [ 2 ]

1 голос
/ 16 августа 2013

Я довольно близко со следующими (используя QtGui.QFrame.WinPanel):

import sys
from PySide import QtGui, QtCore

class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):
        label = QtGui.QLabel("Test")
        label.setAlignment(QtCore.Qt.AlignCenter)
        label.setFrameStyle(QtGui.QFrame.WinPanel | QtGui.QFrame.Sunken)

        edit = QtGui.QTextEdit()
        edit.setFrameStyle(QtGui.QFrame.WinPanel | QtGui.QFrame.Sunken)
        edit.setText("Some text")
        edit.moveCursor(QtGui.QTextCursor.MoveOperation.End)

        vbox = QtGui.QVBoxLayout()
        vbox.setContentsMargins(1, 1, 1, 1)
        vbox.setSpacing(1)
        vbox.addWidget(label)
        vbox.addWidget(edit)

        self.setLayout(vbox)

        self.setGeometry(300, 300, 300, 150)
        self.setWindowTitle('Window Title')
        self.show()

def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

Документ QFrame имеет отличный обзор различных стилей фреймов.

Чтобы стать ближе, чем позволяет setFrameStyle, вам нужно нарисовать свои собственные виджеты / панели или использовать что-то отличное от QT.

wxPython

pywin32

0 голосов
/ 06 января 2012

Возможно, вы не используете правильный стиль. Посмотрите документацию для QStyle .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...