Python QStackedWidget funktioniert nicht?

Hallo,

ich habe folgendes Programm:

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys
from deta import Deta


class stack(QStackedWidget):
    def __init__(self, parent = None):
        QStackedWidget.__init__(self, parent)
    
    def setPage1(self):
        self.setCurrentIndex(0)
    
    def setPage2(self):
        self.setCurrentIndex(1)
        
class main(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)


        self.stack = QStackedWidget()
        self.stack.addWidget(pg1)
        self.stack.addWidget(pg2)
        
        page1Button = QPushButton("Page 1")
        page2Button = QPushButton("Page 2")
        page1Button.clicked.connect(self.stpg2)
        page2Button.clicked.connect(self.stpg1)
    
        layout = QVBoxLayout()
        layout.addWidget(self.stack)
        layout.addWidget(page1Button)
        layout.addWidget(page2Button)
        
        self.setLayout(layout)
        self.show()


    def stpg2(self):
        self.stack.setCurrentIndex(1)


    def stpg1(self):
       self.stack.setCurrentIndex(0)
        
class pg2(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        
        llly = QGridLayout()
        
        teeest = QPushButton()
        llly.addWidget(teeest, 1, 1)
        
        self.setLayout(llly)


class pg1(QWidget): 
    def __init__(self, parent=None): 
        super().__init__(parent)
        
        ly = QGridLayout()
        
        lbb = QLabel("page1")
        ly.addWidget(lbb, 1, 1)
        
        self.setLayout(ly)


        
app = QApplication(sys.argv) 
reg = main()
reg.show()
sys.exit(app.exec_())

Ich benutze Python 3.6.5 und PyQt5. Wenn ich das Programm starte, kommt die Fehlermeldung:

Traceback (most recent call last):
  File "D:\test\test.py", line 68, in <module>
    reg = main()
  File "D:\test\test.py", line 22, in __init__
    self.stack.addWidget(pg1)
TypeError: addWidget(self, QWidget): argument 1 has unexpected type 'sip.wrappertype'
Computer, Programmieren, Python, Qt, python-3, Python3
Flächeninhaltrechner in python funktioniert nicht?

Hallo,

Ich programmiere gerade einen Taschenrechner für Flächeninhalte von Formen, den ich immer weiter erweitere, nur irgendwie läuft der Code nicht, und ich glaube es liegt am else, aber wie geht es richtig?

print("Bitte maße mit . eingeben! Zum Beispiel: c = 3,5 cm Gebe ein: 3.5 bei ganzen Zahlen mit .0 angeben \n Zum Beispiel: 3.0")
print("sie können den Flächeninhalt von folgenden Formen berechnen:")
print("Dreieck, Quadrat, Rechteck, Trapez")


Form = input("Von welcher geometrischen Form wollen Sie die den Flächeninhalt berechnen?")


if Form == "Dreieck":
    print("Dreieck berechnen")
    c = float(input("Bitte maße für Grundlinie angeben"))
    h = float(input("Bitte maße für Höhe oder bei rechtwinkligen Seite neben rechten Winkel angeben"))
    Flächeninhalt = 1/2*c*h



elif Form == "Quadrat":
    print("Quadrat berechnen")
    a = float(input("Bitte die Länge einer Seite angeben"))
    Flächeninhalt = a*a



elif Form == "Rechteck":
    print("Quadrat berechnen...")
    a = float(input("Bitte die Länge einer Seite angeben"))
    b = float(input("Bitte die Länge einer danebenliegenden Seite angeben"))
    Flächeninhalt = a*b


else Form == "Trapez":
    print("Trapez berechnen...")
    a = float(input("Bitte Maße der Grundlinie angeben"))
    c = float(input("Bitte Maße der oberen Linie angeben"))
    h = float(input("Bitte Höhe angeben"))
    Flächeninhalt = 1/2*(a+c)*h



print("Flächeninhalt berechnen...")
print(Flächeninhalt)

Danke

Programmieren, Python, python-3, Python3, Python-programmieren
Python wie löse 'NoneType' object is not subscriptable?

Hallo!

Ich schreibe ein kleines Pythonprogramm, das als Web Crawler fungieren soll.Leider erhalte ich in Zeile 36 ein Fehler:

  brand = make_rating_sp[0].img["title"].title()
TypeError: 'NoneType' object is not subscriptable

Leider, finde ich keine Lösung. Wie könnte ich diesen Fehler lösen? Danke im Voraus!

make_rating_sp[0].img is None.

from bs4 import BeautifulSoup as soup  # HTML data structure
from urllib.request import urlopen as uReq  # Web client

# URl to web scrap from.
# in this example we web scrap graphics cards from Newegg.com
page_url = "http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&N=-1&IsNodeId=1&Description=GTX&bop=And&Page=1&PageSize=36&order=BESTMATCH"

# opens the connection and downloads html page from url
uClient = uReq(page_url)

# parses html into a soup data structure to traverse html
# as if it were a json data type.
page_soup = soup(uClient.read(), "html.parser")
uClient.close()

# finds each product from the store page
containers = page_soup.findAll("div", {"class": "item-container"})

# name the output file to write to local disk
out_filename = "graphics_cards.csv"
# header of csv file to be written
headers = "brand,product_name,shipping \n"

# opens file, and writes headers
f = open(out_filename, "w")
f.write(headers)

# loops over each product and grabs attributes about
# each product
for container in containers:
    # Finds all link tags "a" from within the first div.
    make_rating_sp = container.div.select("a")

    # Grabs the title from the image title attribute
    # Then does proper casing using .title()
    brand = make_rating_sp[0].img["title"].title()

    # Grabs the text within the second "(a)" tag from within
    # the list of queries.
    product_name = container.div.select("a")[2].text

    # Grabs the product shipping information by searching
    # all lists with the class "price-ship".
    # Then cleans the text of white space with strip()
    # Cleans the strip of "Shipping $" if it exists to just get number
    shipping = container.findAll("li", {"class": "price-ship"})[0].text.strip().replace("$", "").replace(" Shipping", "")

    # prints the dataset to console
    print("brand: " + brand + "\n")
    print("product_name: " + product_name + "\n")
    print("shipping: " + shipping + "\n")

    # writes the dataset to file
    f.write(brand + ", " + product_name.replace(",", "|") + ", " + shipping + "\n")

f.close()  # Close the file
Programmieren, Programmierung, Informatik, Python, python-3

Meistgelesene Fragen zum Thema Python-3