0

I have this Lable in my PyQt GUI: self.labelDirectory.setText("Insert directories name using a semicolumn (;) to separate them"). But in the actual application it's cutted and only show the first part of the text photo here

I tried using a new line (\n) but it doesn't do much with new line

full code:

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys


class MyWindow(QMainWindow):
def __init__(self):
    super(MyWindow, self).__init__()
    self.setGeometry(0, 0, 800, 800)
    self.setWindowTitle("BocaWare")
    self.initUi()

def initUi(self):
    #data inizio
    self.labelFirstDate = QtWidgets.QLabel(self)
    self.labelFirstDate.setText("First Date")
    self.labelFirstDate.move(20, 0)
    self.firstDate = QtWidgets.QDateEdit(self)
    self.firstDate.setGeometry(QtCore.QRect(10, 30, 100, 30))
    #data fine
    self.labelEndDate = QtWidgets.QLabel(self)
    self.labelEndDate.setText("End Date")
    self.labelEndDate.move(20, 60)
    self.endDate = QtWidgets.QDateEdit(self)
    self.endDate.setGeometry(QtCore.QRect(10, 85, 100, 30))
    #casella testo per nome directory
    self.labelDirectory = QtWidgets.QLabel(self)
    #self.labelDirectory.setText("Inserire i nomi delle directory separati l'un l'altro con un punto e virgola (;)")
    self.labelDirectory.setText("Insert directories \n name using a semicolumn (;) to separate them")
    self.labelDirectory.move(20, 120)
    self.directory = QtWidgets.QLineEdit(self)
    self.directory.setGeometry(QtCore.QRect(10, 170, 400, 30))
    #bottone invio
    self.b1 = QtWidgets.QPushButton(self)
    self.b1.setGeometry(QtCore.QRect(10, 200, 100, 30))
    self.b1.setText("Submit")
    self.b1.clicked.connect(self.submitClick)
    

def submitClick(self):
    print(self.firstDate.date().toString("yyyy-MM-dd"))
    print(self.endDate.date().toString("yyyy-MM-dd"))
    print(self.directory.text())
    directories = self.directory.text().split(";")
    for directory in directories:
        print(directory)


def window():
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())


window()
eyllanesc
  • 235,170
  • 19
  • 170
  • 241

1 Answers1

0

Using some kind of layout is going to be helpful rather than manually sizing and positioning widgets. It looks like your label is just getting clipped based on its size, but rather than fixing that, maybe try a simple QFormLayout. You could also use a combinations of QVBoxLayout, QHBoxLayout, and QSpacer to achieve something similar.

form layout

from PyQt5 import QtWidgets
import sys


class MyWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()

        self.setGeometry(0, 0, 800, 800)
        self.setWindowTitle("BocaWare")

        self._init_ui()

    def _init_ui(self):

        self.central_widget = QtWidgets.QWidget(self)
        self.setCentralWidget(self.central_widget)
        self.layout = QtWidgets.QFormLayout(self.central_widget)

        # data inizio
        self.labelFirstDate = QtWidgets.QLabel(self)
        self.labelFirstDate.setText("First Date")
        self.firstDate = QtWidgets.QDateEdit(self)
        # data fine
        self.labelEndDate = QtWidgets.QLabel(self)
        self.labelEndDate.setText("End Date")
        self.endDate = QtWidgets.QDateEdit(self)
        # casella testo per nome directory
        self.labelDirectory = QtWidgets.QLabel(self)
        # self.labelDirectory.setText("Inserire i nomi delle directory separati l'un l'altro con un punto e virgola (;)")
        self.labelDirectory.setText("Insert directories name using a semicolumn (;) to separate them")
        self.directory = QtWidgets.QLineEdit(self)
        # bottone invio
        self.b1 = QtWidgets.QPushButton(self)
        self.b1.setText("Submit")
        self.b1.clicked.connect(self.submit_click)

        self.layout.addRow(self.labelFirstDate)
        self.layout.addRow(self.firstDate)
        self.layout.addRow(self.labelEndDate)
        self.layout.addRow(self.endDate)
        self.layout.addRow(self.labelDirectory)
        self.layout.addRow(self.directory)
        self.layout.addRow(self.b1)

    def submit_click(self):
        print(self.firstDate.date().toString("yyyy-MM-dd"))
        print(self.endDate.date().toString("yyyy-MM-dd"))
        print(self.directory.text())
        directories = self.directory.text().split(";")
        for directory in directories:
            print(directory)


app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
Nat
  • 43
  • 6