In my experience, even frameworks that are "compatible" with both the desktop and mobiles typically suffer from the click/touch impedance mismatch. Briefly described, this means that your UI will either be easier to use with a mouse or with a touch screen, but not both. I have never seen a generally-useful framework that can automatically make a UI that is great on both click and touch interfaces.
My recommendation would be to use a programming language that works on all desired platforms; code any business logic (the "model" and "controller" parts of the MVC pattern) so that it will work identically on all the platforms; and then create two separate "Views" (GUIs) that are optimized for the experience of the targeted device.
You can do this with Qt; you can also do this with desktop Java or with HTML5/JS.
Taking the Qt route, I'd say write a normal QtGui interface for the desktop, but for Android you'll probably want to look into Qt Quick for a more touch-enabled experience. Not sure how stable / production-ready this is though.
Taking the Java route, you can use large swaths of the J2SE API for your business logic, but not all. I'd say develop your business logic targeting the more-limited Dalvik VM so any issues immediately obviate themselves (use Eclipse ADT and make it target the Android API). Write the UI using Android's native GUI library. Then lift out the business logic classes, drop them in a new desktop J2SE project, and write a SWT or Swing GUI for the desktop.
Taking the HTML5 route, you MIGHT be able to write one app that works well for desktop browsers and mobile browsers alike, but it largely depends on how dynamic you want your app to be, and what resolution you target. If you want to forget about phones (which have a much lower resolution than tablets or desktops), this may be your best bet. My experience using an Android phone on most HTML5 websites is that it requires tons of zooming and scrolling because they're desired for a larger screen. I really dislike that, so I end up looking for the "m." subdomain, which is pretty much the standard way that companies present their mobile site for small screen users. It's not a bad idea to go that route if you care at all about smartphone users.
Here is a Youtube video of someone with a Mac using Eclipse to create a HTML5/CSS app for Android. http://www.youtube.com/watch?v=uVqp1zcMfbE