我正在尝试构建一个 pyqt5 小部件来显示来自 PyEve 的数据集,但我无法在表行标题中显示 id 键值。 这是生成 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
结果是:QTableWidget
这是来自 shell 中 API 调用的数据集
$ 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 } }
这是我从 Python 控制台获得的输出,用于打印"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
我还尝试在垂直标题之外显示ID号,但无济于事
任何见解都会非常有帮助,提前感谢
正如
@eyllanesc所说..将其更改为
self.tview.setVerticalHeaderItem(row, QTableWidgetItem(str(item["id"])))
能解决问题。谢谢