Title: [Bug]: Working with PyQt5, the different import order will make different result. · Issue #21998 · matplotlib/matplotlib · GitHub
Open Graph Title: [Bug]: Working with PyQt5, the different import order will make different result. · Issue #21998 · matplotlib/matplotlib
X Title: [Bug]: Working with PyQt5, the different import order will make different result. · Issue #21998 · matplotlib/matplotlib
Description: Bug summary Working with PyQt5, the different import order will make different result. If import PyQt5 before import matplotlib, the program will run normally. If import PyQt5 after import matplotlib, the program will riase TypeError at ...
Open Graph Description: Bug summary Working with PyQt5, the different import order will make different result. If import PyQt5 before import matplotlib, the program will run normally. If import PyQt5 after import matplotl...
X Description: Bug summary Working with PyQt5, the different import order will make different result. If import PyQt5 before import matplotlib, the program will run normally. If import PyQt5 after import matplotl...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/21998
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[Bug]: Working with PyQt5, the different import order will make different result.","articleBody":"### Bug summary\r\n\r\nWorking with PyQt5, the different import order will make different result.\r\n\r\n- If import PyQt5 before import matplotlib, the program will run normally. \r\n- If import PyQt5 after import matplotlib, the program will riase `TypeError` at the method of `QLayout.addWidget`.\r\n\r\n### Code for reproduction\r\n\r\n```python\r\nimport sys\r\n\r\n# program run correctly, if import PyQt5 here before import matplotlib\r\n# from PyQt5.QtWidgets import QApplication, QVBoxLayout, QWidget \r\nfrom matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas\r\nfrom matplotlib.figure import Figure\r\n# program will raise TypeError, if import import PyQt5 after import matplotlib\r\nfrom PyQt5.QtWidgets import QApplication, QVBoxLayout, QWidget\r\n\r\nif __name__ == \"__main__\":\r\n app = QApplication(sys.argv)\r\n # init figure\r\n fig = Figure()\r\n fig_canvas = FigureCanvas(fig)\r\n # init widget\r\n layout = QVBoxLayout()\r\n layout.addWidget(fig_canvas) # TypeError here, if import PyQt5 after import matlpotlib\r\n win = QWidget()\r\n win.setLayout(layout)\r\n # run\r\n win.show()\r\n sys.exit(app.exec())\r\n```\r\n\r\n### Actual outcome\r\n```\r\nTypeError\r\naddWidget(self, QWidget, stretch: int = 0, alignment: Union[Qt.Alignment, Qt.AlignmentFlag] = Qt.Alignment()): argument 1 has unexpected type 'FigureCanvasQTAgg'\r\n File \"E:\\CODE\\Python\\testroom.py\", line 17, in \u003cmodule\u003e\r\n layout.addWidget(fig_canvas)\r\n```\r\n\r\n### Expected outcome\r\n\r\nexpect no TypeError\r\n\r\n### Additional information\r\n\r\nThis Bug will not happen at the version v3.4.x of matplotlib.\r\n\r\n### Operating system\r\n\r\nWindows\r\n\r\n### Matplotlib Version\r\n\r\n3.5.1\r\n\r\n### Matplotlib Backend\r\n\r\nQtAgg\r\n\r\n### Python version\r\n\r\nPython 3.8.10\r\n\r\n\r\n### Installation\r\n\r\npip","author":{"url":"https://github.com/MusYi","@type":"Person","name":"MusYi"},"datePublished":"2021-12-18T05:21:15.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":5},"url":"https://github.com/21998/matplotlib/issues/21998"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:1b867acf-3c9e-800f-96df-b5391ec62d53 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | AADE:15F1A6:C55A3B:105722B:6A532112 |
| html-safe-nonce | 598fe4d34a660aa30ebbc4216c473b552761f9952bbb7cee4050c525b8506ce1 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQURFOjE1RjFBNjpDNTVBM0I6MTA1NzIyQjo2QTUzMjExMiIsInZpc2l0b3JfaWQiOiIzOTgyNDQ4NjYyNTI5OTA5MDEwIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | bb54a73e2cecbd37cd9d1fc5a5daa23246677425812f2a2c9850597b98081fb5 |
| hovercard-subject-tag | issue:1083751475 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/matplotlib/matplotlib/21998/issue_layout |
| twitter:image | https://opengraph.githubassets.com/ab1d6f97d322728e3360260eb4502a7ba720ec8f653cb12f55134a538ba22942/matplotlib/matplotlib/issues/21998 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/ab1d6f97d322728e3360260eb4502a7ba720ec8f653cb12f55134a538ba22942/matplotlib/matplotlib/issues/21998 |
| og:image:alt | Bug summary Working with PyQt5, the different import order will make different result. If import PyQt5 before import matplotlib, the program will run normally. If import PyQt5 after import matplotl... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | MusYi |
| hostname | github.com |
| expected-hostname | github.com |
| None | b9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb |
| turbo-cache-control | no-preview |
| go-import | github.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git |
| octolytics-dimension-user_id | 215947 |
| octolytics-dimension-user_login | matplotlib |
| octolytics-dimension-repository_id | 1385122 |
| octolytics-dimension-repository_nwo | matplotlib/matplotlib |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1385122 |
| octolytics-dimension-repository_network_root_nwo | matplotlib/matplotlib |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 07a982c1d40157c619b364352b704c3ce66bb332 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width