Saya mencoba membuat widget pyqt5 untuk menampilkan kumpulan data dari PyEve, tetapi saya tidak dapat menampilkan nilai kunci id ke dalam header baris tabel. ini adalah bagian dari kode yang menghasilkan QTableWidget

http = "http://127.0.0.1:5000/people"
con = requests.get(http)

self.tview = QTableWidget()
self.tview.setRowCount(len(con.json()['_items']))
self.tview.setColumnCount(2)

self.tview.setHorizontalHeaderItem(0, QTableWidgetItem("Firstname"))
self.tview.setHorizontalHeaderItem(1, QTableWidgetItem("Lastname"))

row = 0
for item in con.json()['_items']:
    self.tview.setVerticalHeaderItem(row, QTableWidgetItem(item["id"]))
    self.tview.setItem(row, 0, QTableWidgetItem(item['firstname']))
    self.tview.setItem(row, 1, QTableWidgetItem(item['lastname']))
    row += 1

Yang mengakibatkan: QTableWidget

Ini adalah dataset dari panggilan API di shell

    $ http localhost:5000/people

    {
    "_items": [
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "34418931281956ee9f0d73f5015a325276dce0a8",
            "_links": {
                "self": {
                    "href": "people/1",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "George",
            "fullname": "George Washington",
            "id": 1,
            "lastname": "Washington"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "8efc3ef35256de6e9bf530e54188ba5c3526cf0b",
            "_links": {
                "self": {
                    "href": "people/2",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "John",
            "fullname": "John Adams",
            "id": 2,
            "lastname": "Adams"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "b1e81fb3519dda0d723043203c06c2df235c9450",
            "_links": {
                "self": {
                    "href": "people/3",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Thomas",
            "fullname": "Thomas Jefferson",
            "id": 3,
            "lastname": "Jefferson"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "5d3bc841cefdb56710445b2cf9d89c3a0c899551",
            "_links": {
                "self": {
                    "href": "people/4",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "George",
            "fullname": "George Clinton",
            "id": 4,
            "lastname": "Clinton"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "a83d11293f00374f91f66ae9da5373dc6c924bca",
            "_links": {
                "self": {
                    "href": "people/5",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "James",
            "fullname": "James Madison",
            "id": 5,
            "lastname": "Madison"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "e6abc69c3f2cb05676b0f2e6d76bde51b3ee467c",
            "_links": {
                "self": {
                    "href": "people/6",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Elbridge",
            "fullname": "Elbridge Gerry",
            "id": 6,
            "lastname": "Gerry"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "5621734381fe51fc4bb6d05bdc94ffe2cfe91c75",
            "_links": {
                "self": {
                    "href": "people/7",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "James",
            "fullname": "James Monroe",
            "id": 7,
            "lastname": "Monroe"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "a03e9261c3a06526893ba074f62b939d9f7798ed",
            "_links": {
                "self": {
                    "href": "people/8",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "John",
            "fullname": "John Adams",
            "id": 8,
            "lastname": "Adams"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "1b7c8e7674a75e876547567839f0496f4e2f893e",
            "_links": {
                "self": {
                    "href": "people/9",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Andrew",
            "fullname": "Andrew Jackson",
            "id": 9,
            "lastname": "Jackson"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "975dd0527d63b8bb10fe63c6d648df8eaafc1a4d",
            "_links": {
                "self": {
                    "href": "people/10",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Martin",
            "fullname": "Martin Van Buren",
            "id": 10,
            "lastname": "Van Buren"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "d2aed37174724a07dd4f3262b703490319c9aa9a",
            "_links": {
                "self": {
                    "href": "people/11",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "William",
            "fullname": "William Harrison",
            "id": 11,
            "lastname": "Harrison"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "60938a8ea70dc4be7082dc12510c19bd2d802623",
            "_links": {
                "self": {
                    "href": "people/12",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "John",
            "fullname": "John Tyler",
            "id": 12,
            "lastname": "Tyler"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "f158fb234f0be3da9701779bcc953311bcaf9e89",
            "_links": {
                "self": {
                    "href": "people/13",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "James",
            "fullname": "James Polk",
            "id": 13,
            "lastname": "Polk"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "32cd09027db237a97c1d26a365403385e7eb9e40",
            "_links": {
                "self": {
                    "href": "people/14",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Zachary",
            "fullname": "Zachary Taylor",
            "id": 14,
            "lastname": "Taylor"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "9c211e916acb0327c2cc02f71a894e1f445d21ba",
            "_links": {
                "self": {
                    "href": "people/15",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Millard",
            "fullname": "Millard Fillmore",
            "id": 15,
            "lastname": "Fillmore"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "f8d4dc8f5d8ffed19cdd5304c66a5f930e085fcb",
            "_links": {
                "self": {
                    "href": "people/16",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Franklin",
            "fullname": "Franklin Pierce",
            "id": 16,
            "lastname": "Pierce"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "1b64a097904bb043e9d52f85c0620d5743fe41f7",
            "_links": {
                "self": {
                    "href": "people/17",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "James",
            "fullname": "James Buchanan",
            "id": 17,
            "lastname": "Buchanan"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "dbc84c7bffdcaa6268f64556db373f96a308025c",
            "_links": {
                "self": {
                    "href": "people/18",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Abraham",
            "fullname": "Abraham Lincoln",
            "id": 18,
            "lastname": "Lincoln"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "c9e29f8cc5b81bc406336780fbdd211490af33c6",
            "_links": {
                "self": {
                    "href": "people/19",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Andrew",
            "fullname": "Andrew Johnson",
            "id": 19,
            "lastname": "Johnson"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "b3ebe09856c4e5e6e04a5e5fb88c087f5cf93165",
            "_links": {
                "self": {
                    "href": "people/20",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Ulysses",
            "fullname": "Ulysses Grant",
            "id": 20,
            "lastname": "Grant"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "e874ccb8f1ff91efb4f25d0d86ac0d1c15ba9260",
            "_links": {
                "self": {
                    "href": "people/21",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Henry",
            "fullname": "Henry Wilson",
            "id": 21,
            "lastname": "Wilson"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "a62dd991fd36fdfc427c6823ecd1baf9b9a2a55f",
            "_links": {
                "self": {
                    "href": "people/22",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Rutherford",
            "fullname": "Rutherford Hayes",
            "id": 22,
            "lastname": "Hayes"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "21071baad27a9fed4ed01be7b32b7962fabd9414",
            "_links": {
                "self": {
                    "href": "people/23",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "James",
            "fullname": "James Garfield",
            "id": 23,
            "lastname": "Garfield"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "cdbd9450d58cd7258ce977cbf89a13efc3bd05df",
            "_links": {
                "self": {
                    "href": "people/24",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Chester",
            "fullname": "Chester Arthur",
            "id": 24,
            "lastname": "Arthur"
        },
        {
            "_created": "Tue, 14 Nov 2017 13:33:50 GMT",
            "_etag": "f6d202e5f0ef01ccc1bc73a215e93378935bac0b",
            "_links": {
                "self": {
                    "href": "people/25",
                    "title": "person"
                }
            },
            "_updated": "Tue, 14 Nov 2017 13:33:50 GMT",
            "firstname": "Grover",
            "fullname": "Grover Cleveland",
            "id": 25,
            "lastname": "Cleveland"
        }
    ],
    "_links": {
        "last": {
            "href": "people?page=3",
            "title": "last page"
        },
        "next": {
            "href": "people?page=2",
            "title": "next page"
        },
        "parent": {
            "href": "/",
            "title": "home"
        },
        "self": {
            "href": "people",
            "title": "people"
        }
    },
    "_meta": {
        "max_results": 25,
        "page": 1,
        "total": 55
    }
}

Dan ini adalah output yang saya dapatkan dari konsol python untuk mencetak nilai "id"

import requests 
r = requests.get('http://127.0.0.1:5000/people') 
for i in r.json()["_items"]: print(i["id"])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Saya juga mencoba menampilkan nomor ID di luar verticalHeader tetapi tidak berhasil

Setiap wawasan akan sangat membantu, terima kasih sebelumnya

1
prive 17 November 2017, 10:26

1 menjawab

Jawaban Terbaik

Seperti yang dikatakan @eyllanesc.. ubah ke

self.tview.setVerticalHeaderItem(row, QTableWidgetItem(str(item["id"])))

Melakukan trik. Terima kasih

0
prive 17 November 2017, 07:59