Two years ago I asked myself the same question. My solution: getting the QtCreator source code and study it. QtCreator is exactly the kind of application you descibe in your post. It is very well designed and you can learn a lot from it - especially how to make a modular, plugin based application.
Another good example for such a plugin based framework is the "Generic Component Framework":http://www.vcreatelogic.com/products/gcf/. You can use this framework out of the box without the need to design your own.
code works if I comment call of DrawThemeTextEx
may be need to set clipping before call it?
@typedef HRESULT (*PDrawThemeTextEx)(
const DTTOPTS *pOptions
I forget typedef WINAPI
@HRESULT (WINAPI *PDrawThemeTextEx)(
const DTTOPTS *pOptions
All works!!! Thanks all
PS. never ever copy-paste function declaration from MSDN!!!
If one is trying a use a class and looks at the documentation, it is quite obvious. I also understand that Qt documentation provides a list of "obsolete classes":http://doc.qt.nokia.com/4.7/obsoleteclasses.html each version. But unless you're constantly looking to keep the code up-to-date, you might not keep track of it. I usually compile the new version.. fire up assistant and continue working on the client's requirements. Maybe, it would be good to make that page more prominent and have a more in-your-face-visibility web page for it here on devnet. But then again, i don't see too many classes on the list. Anyhoo...
I think maintainability is more important than you avoiding an if statement. It is hard to understand what piece of data is where if you use an array to store them. That may lead to bugs in Qt in the future. So please, don't.
Adding a convenience function that implements operator is fine by me, but the implementation would basically look like FrankZ's proposal.
I am not sure if adding a size to a point should yield another point, but perhaps it should. That would be easy to implement. You might want to supply a merge request containing the patch and a use case and/or other argumentation why this is needed.
Robust and well tested BEEP implementation with a threaded design (non-blocking parallel comunications), written in ANSI C.
Context based API design making the library stateless. Support to run several ejecution contexts in the same process.
A complete XML-RPC over BEEP RFC 3529 with a IDL/XDL protocol compiler (xml-rpc-gen).
A complete TUNNEL (RFC3620) support.
Complete implementation for TLS and SASL profiles.
Modular design which allows to use only those components needed.
Support to proxy BEEP connections through HTTP proxy servers.
Support for single threaded (no async notification) programming.
BEEP (Blocks Extensible Exchange Protocol) is a framework for creating network application protocols. It includes an application protocol kernel for connection-oriented asynchronous interactions, and can be used both for binary and text messages within the context of a single application user identity.
BEEP is intended to abstract-out the common features that have traditionally been duplicated in each protocol implementation. BEEP (formerly called BXXP) typically runs on top of TCP and allows the exchange of messages called 'frames'. Unlike HTTP (and similar protocols), either end of the connection can send a frame at any time, and 'questions' and 'replies' can be interleaved easily. BEEP also includes facilities for encryption and authentication, and is highly extensible.
BEEP was designed by Marshall Rose, who also worked on the POP3, SMTP, and SNMP protocols.[2
That's the whole point. You should try to avoid forbidding the user to do something just because it is convenient for you as a programmer. Instead, make actions undoable, for instance.
Always keep in mind, that your user is trying to achieve something with your program. Your program is a tool, nothing more. That tool should support whatever the user is trying to do, and not hinder him in his way to do that. Popup boxes disrupt the flow of work, and of thought and focus of the user. They can also scare the user if you start giving warnings they may have trouble to comprehend. That hinders him in his task.
So, rather than spending time on fancy graphics effects that are really the task of the window manager to handle anyway, I would suggest rather to spend your energy on making sure the user gets done what he want to get done without being bothered or scared by your application with such dialogs.
I'd been toying with this idea for a while, but the number of formats, and my (in)competence, had also put me off. One idea I had was to use Qt Plugins for the different formats, but that leads me to the following questions: Does Qt on Symbian support plugins (I assume it does), and also can plugins be bundled on the Ovi store as additions to existing apps?
So far it seems to be working for me; I've got xcode4 installed from the app store. I did have to re-install qt creator. I think qt creator is actually using gcc still; but I can try out xcode4 and still work with qt creator and build and run things there, so I'm happy for now.
I would really like to see official xcode4 support though :)
I was also looking for something similar to OSGi in the C++ world, ideally with a Qt-like API. I did not find something meeting the requirements for our projects and since I already had quite some experience in porting OSGi API to C++, I started working on the CTK Plugin Framework https://github.com/commontk/CTK/tree/master/Libs/PluginFramework (CTK is an international project involving major players in the field of medical imaging).
[quote author="smalltobi" date="1294739452"]
I have found a Qt based plugin framework: http://www.commontk.org
But this also doesn't seem to be very mature, yet and it is focused on medical applications.[/quote]
Although the context was originally medical applications, the plugin framework is not biased in any way towards certain types of applications. In fact, it is a very close imitation of the OSGi Life Cycle and Service Layer, with a Qt based API. As such, the API can be considered stable, although using applications just start to be developed.
Further, we also have implementations for some of the OSGi Compendium specifications. For example, EventAdmin (an event bus spec), ConfigAdmin (used to provide and manage configuration data for services), Logging, and MetaType implementations.
The plugin framework has no dependencies on QtGui and is licensed under Apache License 2.0.
What about the new wide gamut displays that are starting to appear? Many of these have gamuts that are much wider than sRGB. These are starting to come into wider use now and will likely be common in the not too distant future. In addition we are starting to see displays and video devices that support 10 and 12 bits per channel and Display Port supports of to 16 bits per channel. How is an 8 bit per channel format like QImage suitable for use with this class of hardware?
Also as a side note color scientists do not consider "floating point internal storage" a color space but rather a storage format. In addition these same folks would also tell you that RGB is not a color space unless there is lots more information included to define it as a color space. What is it's white point? What is it's gamma? How do the RGB values map to a CIE color space like XYZ or Lab*? And so on. For example sRGB and ProPhotoRGB both define such color spaces. Absent that information it is impossible to do a meaningful conversion between color spaces.
[quote author="Almashraee" date="1294939573"]Hello everybody. I am mohammed start doing Ph.D research for agent learning.
I wish if someone help me in answering my question. What are the most common mechanisms that are used to train a multiagent system. Greatful to hear your answer.
The first thing I'd expect a Ph.D student to do, is to do a literature study in order to figure out what is already known in his area of research. So, my advice is to start searching for relevant literature using systems like Scopus or Web of Knowledge, to get up to speed with the state of the art, and write down what you learned. That is a great first or second chapter for your thesis, and could also be published separately as a review article in a related journal. Good thing is: review articles tend to get a lot of citations too, if they're any good.
I think that is more effective than asking around on random, unrelated internet forums.
The questions about the curriculum are alwasy quite comlicated, not to mention the answers..., especially if it comes to such deegre programs. And I got angry a few times lately about my curriculum...
We learn C as we need it, and some C++. But I think it's very useful to know a few other programming languages, it broadens our horizons and improve our thinking about problems. And of course Qt is a big help and great tool, so I will try my best to make an offical or a not so offical course at my departure about Qt.
Well... I did list some, IMHO, shortcommings of qt-apps.org in my openingpost. However, I am curious about the similar websites you mentioned. Which other websites do you know of that feature Qt components? If there's one that's even remotely good, I'd be more than happy not to start something like this.
lupasa: So write some client that communicates with a server. The basics are all in Qt... high level stuff like a framework for application level protocols are of course not part of a standard Qt. So it is definitely possible, but will require a bit of work or 3rd party libraries to ease the protocol implementation.
[quote author="tamhanna" date="1291437932"]
Dont ever state that on the other Forum if you want to be made Champion there.
I am writing a Qt book now and will put in a chapter only why to avoid Mobility. It really is the worst part of Qt.[/quote]
Please note mobility is under active development and yes it needs to mature and it will. Just a matter of time. If you ask readers to avoid mobility? How do you propose they should write apps for devices then? Nokia is pushing Qt everywhere big time and it will reach everywhere big time!