Qlabel не отображает всю информациюPython

Программы на Python
Ответить
Anonymous
 Qlabel не отображает всю информацию

Сообщение Anonymous »

Я использую mysqlconnector, PyQt5 и tabulate.
Это мой первый проект на Python+sql; Это мои первые пару недель, когда я пытаюсь изучить программирование, поэтому, пожалуйста, не сбивайте меня с толку.

Код: Выделить всё

#SQL Connection
import mysql.connector
from tabulate import tabulate
fitnessdb = mysql.connector.connect(
host="localhost",
user='root',
password='pass',
port='3306',
database='fitness'
)
mycursor = fitnessdb.cursor()

import sys

from PyQt5.QtCore import center
from PyQt5.QtWidgets import (QApplication, QMainWindow, QLabel, QWidget,
QPushButton, QVBoxLayout, QHBoxLayout, QGridLayout, QLineEdit,)
from PyQt5.QtGui import QIcon, QFont, QPixmap
from PyQt5.QtCore import Qt

class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('Fitness Database')
self.setGeometry(0,0, 550, 700)
self.setWindowIcon(QIcon('icon.png'))
self.initUI()

def initUI(self):
central_widget = QWidget()
self.setCentralWidget(central_widget)
#First Prompt
self.button_add = QPushButton('Add', self)
self.button_add.show()
self.button_edit = QPushButton('Edit', self)
self.button_edit.show()
self.button_view = QPushButton('View', self)
self.button_view.show()
self.button_add.setStyleSheet('font-size: 60px;')
self.button_edit.setStyleSheet('font-size: 60px;')
self.button_view.setStyleSheet('font-size: 60px;')
self.button_add.clicked.connect(self.add_button_clicked)
self.button_edit.clicked.connect(self.edit_button_clicked)
self.button_view.clicked.connect(self.view_button_clicked)

#Return button
self.return_button = QPushButton('Return', self)
self.return_button.setStyleSheet('font-size: 40px;')
self.return_button.clicked.connect(self.initUI)
self.return_button.hide()

#Add prompt
self.line_liftName = QLineEdit(self) #lift name
self.line_liftName.setPlaceholderText('Enter a lift')
self.line_liftName.setStyleSheet('font-size: 30px;')
self.line_liftName.hide()
self.line_onerepmax =QLineEdit(self) #one rep max
self.line_onerepmax.setPlaceholderText('Enter your one-rep max (lbs)')
self.line_onerepmax.setStyleSheet('font-size: 30px;')
self.line_onerepmax.hide()
self.line_3repmax = QLineEdit(self) #3 rep max
self.line_3repmax.setPlaceholderText('Enter your three-rep max (lbs)')
self.line_3repmax.setStyleSheet('font-size: 30px;')
self.line_3repmax.hide()

self.add_submit_button = QPushButton('Submit', self)
self.add_submit_button.clicked.connect(self.add_submit_clicked)
self.add_submit_button.setStyleSheet('font-size: 60px;')
self.add_submit_button.hide()

self.success_return_lable = QLabel('Successfully added.  Would you like to return?')
self.success_return_lable.setStyleSheet('font-size: 30px;')
self.success_return_lable.hide()

#View prompt
self.view_label = QLabel()
self.view_label.setStyleSheet('font-size: 10px;')
self.view_label.hide()

vbox = QVBoxLayout()
#First prompt
vbox.addWidget(self.button_add)
vbox.addWidget(self.button_edit)
vbox.addWidget(self.button_view)

#Add prompt
vbox.addWidget(self.line_liftName)
vbox.addWidget(self.line_onerepmax)
vbox.addWidget(self.line_3repmax)
vbox.addWidget(self.add_submit_button)
vbox.addWidget(self.success_return_lable)
vbox.addWidget(self.return_button)

#View prompt
vbox.addWidget(self.view_label)

central_widget.setLayout(vbox)

def add_button_clicked(self):
self.button_view.hide()
self.button_edit.hide()
self.button_add.hide()
self.line_liftName.show()
self.line_onerepmax.show()
self.line_3repmax.show()
self.add_submit_button.show()

def edit_button_clicked(self):
print('Edit Button Clicked')
self.button_edit.setText('Edited')

def view_button_clicked(self):
self.button_add.hide()
self.button_edit.hide()
self.button_view.hide()
select_all = ('SELECT lift_name, max_lift, 3repmax, pri_musc_group '
'FROM lifts JOIN muscle_groups ON lifts.pmg_id = muscle_groups.id')
mycursor.execute(select_all)
testList = mycursor.fetchall()
self.view_label.setText(tabulate(testList, headers=['Lift', 'Max', '3-Rep Max', 'Muscle Group'],
tablefmt='simple'))
self.view_label.show()

def add_submit_clicked(self):
lift_name = self.line_liftName.text() #lift name into SQL
lift_list = []
lift_list.append(lift_name)
insert_query = 'INSERT INTO lifts(lift_name) VALUES (%s)'
mycursor.execute(insert_query, lift_list)
fitnessdb.commit()

maxRep_input = self.line_onerepmax.text() #one rep into SQL
update_query = 'UPDATE lifts SET max_lift = %s WHERE lift_name = %s'
mycursor.execute(update_query, (maxRep_input, lift_name))
fitnessdb.commit()

rep3_input = self.line_3repmax.text()
update_query = 'UPDATE lifts SET 3repmax = %s WHERE lift_name = %s'
mycursor.execute(update_query, (rep3_input, lift_name))
fitnessdb.commit()

self.success_return_lable.show()
self.line_liftName.hide()
self.line_onerepmax.hide()
self.line_3repmax.hide()
self.add_submit_button.hide()
self.return_button.show()

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

if __name__ == "__main__":
main()
Вот результат:
Проблема: моя Qlabel 'view_label' не отображает более одной строки из базы данных и выглядит ужасно. (см. изображение).

Подробнее здесь: https://stackoverflow.com/questions/791 ... nformation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»