16788

how pyqt implement signal and slot in qt?

Question:

pyqt is created by SIP, and SIP support signal and slot.

qt use moc to create a moc data about the signal and slot functions.

and qt search slot by index the function name.

and I want to know how pyqt archive this?

this is a critical question for better understanding pyqt...

Answer1:

From memory, I believe that PyQt initially used only proxy objects to handle signals and slots, making it possible for any Python callable to be used as a slot and pretty much any signal to be emitted. At some point, support for static meta-objects was added, making it possible for Python to be used to write Qt Designer plugins.

I think that some Qt-specific handling code was moved from SIP into PyQt at some point, and some refactoring has taken place over time, so I think it's worth looking at PyQt's internals to start with.

Recommend

  • In Arel, how can I combine a bunch of conditions with OR?
  • Writing Query in Microsoft Access, error in field description [closed]
  • JSON (from HTML Table) to CSV
  • Data persistence when worker process dies, how?
  • What is the runtime complexity of Python's deepcopy()?
  • Read file line by line as soon as these lines appear in the file using Apache Camel
  • Have anyone succeeded in ThinApp'ing Visual Studio?
  • Using Python help throws SEGFAULT [closed]
  • Simple Injector fails if using verify before setting dependency resolver for MVC 4
  • Team Foundation Server 2015 vs. Bitbucket Server (Stash)
  • Deployments not visible in Kubernetes Dashboard
  • Want to save selected (i.e., more than 1) enums as string with NHibernate
  • Fat binaries in iOS
  • Excel distinct count with conditions
  • Send emails through VB6 if no email client
  • How do I remove all but some records based on a threshold?
  • Date Conversion from yyyy-mm-dd to dd-mm-yyyy
  • Debug.DrawLine not showing in the GameView
  • Admob requires api-13 or later can I not deploy on old API-8 phones?
  • Django rest serializer Breaks when data exists
  • Get data from AJAX - How to
  • Ajax Loaded meta Tags
  • How to rebase a series of branches?
  • Xamarin Forms - UWP Fonts
  • PHPUnit_Framework_TestCase class is not available. Fix… - Makegood , Eclipse
  • CSS Linear-gradient formatting issue accross different browsers
  • Azure Cloud Service Web Role web pages do not load
  • Arrow is showed instead of the material design version hamburger icon. Why doesn't syncState in
  • what is the difference between the asp.net mvc application and asp.net web application
  • Rearranging Cells in UITableView Bug & Saving Changes
  • Arrays break string types in Julia
  • Proper way to use connect-multiparty with express.js?
  • Turn off referential integrity in Derby? is it possible?
  • apache spark aggregate function using min value
  • Binding checkboxes to object values in AngularJs
  • Conditional In-Line CSS for IE and Others?
  • Python/Django TangoWithDjango Models and Databases
  • Net Present Value in Excel for Grouped Recurring CF
  • jQuery Masonry / Isotope and fluid images: Momentary overlap on window resize
  • How to load view controller without button in storyboard?