Scrollbar auf main windown

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Jana94
User
Beiträge: 2
Registriert: Freitag 10. April 2020, 14:42

Hallo

folgendes Rahmenprogramm habe ich (das Fenster erstmal leer; der Inhalte habe ich schon dennoch geschrieben und liegt in der Variable ausgabe).

Code: Alles auswählen

import sys
import requests
import json
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot




def window():
   app = QApplication(sys.argv)
   widget = QWidget()



   textLabel = QLabel(widget)
   textLabel.setText(ausgabe)
   textLabel.move(10,10)

   widget.setGeometry(50,50,920,1200)
   widget.setWindowTitle("PyQt5 Example")
   widget.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()
Wie kann ich da einfach einen Scrollbar hinzufügen? Danke

Grüße
Jana
Benutzeravatar
__blackjack__
User
Beiträge: 13242
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Jana94: Wo und warum? Beschreibe mal bitte das Problem, welches Du lösen möchtest. Nicht das wir hier Zeit `QScrollBar` verschwenden wenn Du am Ende eigentlich ein `QTextEdit` im „read only“ Modul haben wolltest.

`move()` und `setGeometry() auf dem Fenster gehört da eher nicht rein. Und die Funktion wollte nicht `window()` heissen. `window` ist ein prima Name für ein Fenster, aber er beschreibt keine Tätigkeit, ist also nicht für eine Funktion geeignet, die ja etwas tut. Die Funktion mit dem Hauptprogramm heisst traditionell `main()`.
Please call it what it is: copyright infringement, not piracy. Piracy takes place in international waters, and involves one or more of theft, murder, rape and kidnapping. Making an unauthorized copy of a piece of software is not piracy, it is an infringement of a government-granted monopoly.
Jana94
User
Beiträge: 2
Registriert: Freitag 10. April 2020, 14:42

Hallo

den Code oben hab ich aus einem Tutorial und er lief ja auch.
Aber: Mit deinem Hinweis auf QTextEdit habe ich das Widget QPlainTextEdit() gefunden und das läuft perfekt :)
Benutzeravatar
__blackjack__
User
Beiträge: 13242
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Jana94: Es geht nicht darum ob der Code läuft oder nicht, man macht das halt nicht, weil es Probleme macht unflexibel ist, und letztlich mehr Arbeit bedeutet wenn man Veränderungen vornimmt.

Die Fenstergrösse ergibt sich automatisch aus dem Inhalt des Fensters, die gibt man nicht vor. Ausnahme sind Layouts bei denen es Sinn macht das der Anwender die Fenstergrösse ändert. Da kann man die Fenstergrösse bei Programmende speichern und bei einem erneuten Programmstart wieder herstellen. Würde ich aber auch nur machen wenn der Benutzer das wünscht.

Statt `move()` verwendet man die diversen von `QLayout` abgeleiteten Klassen um Anzeigeelemente relativ zueinander anzuordnen. Um Tutorials die das anders machen, würde ich einen grossen Bogen machen.
Please call it what it is: copyright infringement, not piracy. Piracy takes place in international waters, and involves one or more of theft, murder, rape and kidnapping. Making an unauthorized copy of a piece of software is not piracy, it is an infringement of a government-granted monopoly.
Antworten