Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Language Bindings
  4. [SOLVED]PyQT and QTableView
QtWS25 Last Chance

[SOLVED]PyQT and QTableView

Scheduled Pinned Locked Moved Language Bindings
5 Posts 2 Posters 9.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • I Offline
    I Offline
    ivica
    wrote on last edited by
    #1

    Hey everyone, and thank you for reading this in advance.

    I have just started my first "serious" QT project. Here is the setup; I have "drawn" a GUI with the QT Designer, made .py file out of it. Basically, GUI is working fine. In that GUI, I made a QTableView (model based) which is named "tabela".

    On the other hand, I have a small sqlite database containing few names and numbers. What would be a correct way to display that SQLite data into that QListView?

    I have searched the web for a few days, and only thing I got is "this thread":http://stackoverflow.com/questions/8923562/getting-data-from-selected-item-in-qlistview on Stackoverflow. It works by itself, but refuses to work with my custom GUI.

    Thank you for reading, and excuse my english.

    1 Reply Last reply
    0
    • A Offline
      A Offline
      andre
      wrote on last edited by
      #2

      You'll need to instantiate a QSqlTableModel (or QSqlQueryModel, depending on your exact needs) and set that as the model for the view. But that is basically what's in that tread as well.

      You'll have to be more clear on what you tried exactly, and what didn't work.

      1 Reply Last reply
      0
      • I Offline
        I Offline
        ivica
        wrote on last edited by
        #3

        I would like to use QSqlQueryModel at first. My simplified question is:

        how can I "instruct" the view to be shown in my object called "tabela". It already exists in the gui.py file

        @self.tabela = QtGui.QTableView(self.registar)
        self.tabela.setGeometry(QtCore.QRect(80, 50, 431, 192))
        self.tabela.setObjectName(_fromUtf8("tabela"))@

        this is the snippet from main.py

        @class Prozor(QtGui.QMainWindow):
        def init(self,parent=None):
        QtGui.QWidget.init(self,parent)
        self.ui=Ui_glavni()
        self.ui.setupUi(self)
        self.model = QSqlQueryModel(self)#I tried putting it in constructor

        .......
        QtCore.QObject.connect(self.ui.dugmeBaza, QtCore.SIGNAL("clicked()"),self.baza)
        #my signal button conected with a function called "baza"

        def baza(self):
        db = QSqlDatabase.addDatabase("QSQLITE")
        db.setDatabaseName("vedran.db")
        db.open()

        self.model.setQuery("select * from predmeti",db)

        #view = QtGui.QTableView() this is what the code looked like
        viev = self.ui.tabela #i changed it to this, and now it works!
        view.setModel(self.model)

        @

        :EDIT:

        IT WORKS :) I have marked the changes. Still, any advice for my coding? I am at beginner level.

        1 Reply Last reply
        0
        • A Offline
          A Offline
          andre
          wrote on last edited by
          #4

          Sorry, I don't know much about Python. However, very general:
          If you know English, I find it easier to stick to that for naming my objects and methods. All the objects from the API are named in that language. Using two languages inside a single 'sentence' or 'paragraph' (piece of code) doesn't help understanding, generally speaking. It also makes it easier to get help online (people reading your posts can make sense of your object names, and thus perhaps of what you are trying to do) and even collaborators (in open source projects).

          I once had to reject using a very interesting looking library, because I could not make heads or tails of the API: all object and method names (and documentation) were in Russian.

          1 Reply Last reply
          0
          • I Offline
            I Offline
            ivica
            wrote on last edited by
            #5

            Thank you for your observation and general promptness to answer my question. In the future, I will translate my code to English for forums ;) In general, I find my native language (Serbian) more descriptive, and it helps me distinguish "code" from "object names".

            1 Reply Last reply
            0

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved