PySide2 - установить / удалить интервал между виджетами - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть этот код PySide2, который генерирует окно, как на картинке

Между QLabel и QPushButton есть некоторое нежелательное пространство, которое я пытаюсь уменьшить. Я пробовал setSpacing и setMargin, который, кажется, не работает. Я что-то упускаю из виду? Вот код ...

import sys
from PySide2.QtWidgets import *
from PySide2 import *
from PySide2.QtCore import *
from PySide2.QtGui import *


class ToolBar(QWidget):
   def __init__(self):
       super(ToolBar, self).__init__()
       self.setFixedHeight(22)

       tb_bg = QWidget()
       tb_bg.setStyleSheet("background: rgb(100, 100, 100);")

       tb_layout = QHBoxLayout()
       tb_layout.setMargin(0)
       tb_layout.setSpacing(0)
       tb_layout.addWidget(tb_bg)
       self.setLayout(tb_layout)


class MainPanel(QWidget):
   def __init__(self):
      super(MainPanel, self).__init__()

       default_page = QWidget()
    default_page.setStyleSheet("background: rgb(220, 220, 220)")

    default_msg = QLabel()
    default_msg.setText("You have no reminders or to-dos, "
                        "click the button below or click the fluid button "
                        "in the toolbar to add new to-dos or reminders.")
    default_msg.setFixedSize(200, 100)
    default_msg.setWordWrap(True)
         default_msg.setStyleSheet("background: none;"
                              "color: rgb(120, 120, 120);"
                              "font-size: 12px;"
                              "margin: 0;"
                              "padding: 0;"
                              "border: 0;")
    default_button = QPushButton()
    default_button.setFixedSize(120, 120)
    default_button.setFlat(True)
    default_button.setText("+")
    default_button.setToolTipDuration(7000)
    default_button.setToolTip("Add new to-do or reminder...")
    default_button.setStyleSheet("QPushButton{"
                                 "border: 1px solid rgb(170, 170, 170);"
                                 "margin:0;"
                                 "padding: 0;"
                                 "border-radius: 10px;"
                                 "color: rgb(140, 140, 140);"
                                 "font-size: 40px;}"
                                 "QPushButton:hover{"
                                 "border: 2px solid rgb(250, 250, 250);"
                                 "background: rgb(250, 250, 250);"
                                 "color: rgb(80, 80, 80);"
                                 "font-size: 50px;}"
                                 "QPushButton:pressed{"
                                 "border: 3px solid rgb(250, 250, 250);"
                                 "border-radius: 10px;"
                                 "color: rgb(80, 80, 80);"
                                 "font-size: 40px;}")
      default_page_layout = QVBoxLayout()
    default_page_layout.addWidget(default_msg)
    default_page_layout.setAlignment(default_msg, Qt.AlignCenter)
    default_page_layout.addWidget(default_button)
    default_page_layout.setAlignment(default_button, Qt.AlignCenter)
    default_page_layout.setSpacing(0)
    default_page_layout.setMargin(0)
    default_page_layout.setContentsMargins(0, 0, 0, 0)
    default_page.setLayout(default_page_layout)

    mp_layout = QHBoxLayout()
    mp_layout.addWidget(default_page)
    mp_layout.setMargin(0)
    mp_layout.setSpacing(0)
    mp_layout.setContentsMargins(0, 0, 0, 0)
    self.setLayout(mp_layout)


class MainWindow(QWidget):
   def __init__(self):
    super(MainWindow, self).__init__()
    self.resize(600, 500)

    toolbar = ToolBar()
    mainpanel = MainPanel()

    mw_layout = QVBoxLayout()
    mw_layout.setMargin(0)
    mw_layout.setSpacing(0)
    mw_layout.addWidget(toolbar)
    mw_layout.addWidget(mainpanel)
    self.setLayout(mw_layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    MainWindow = MainWindow()
    MainWindow.show()
    sys.exit(app.exec_())

Пожалуйста, игнорируйте неправильный отступ, произошедший при вставке копии.

...