-
Apr 5, 2013
Sick Day
Woke up before dawn this morning with heartburn, a headache, and a lot of congestion. I guess I have a cold. I didn’t really want to call (read: email) out of work, because it’s Friday, which meant I would be missing the weekly software meeting. This week the SW group was reviewing and discussing the Google C++ Style Guide as part of a recent effort to improve process and communication.
Also on the meeting’s docket was going over the first chapter of a book called Effective C++. The book is broken into 55 smaller “items”, each one dealing with a small and specific concept in C++. I was looking forward to what some people at the office have been calling “Book Club”, but, alas, too sick to work.
Maybe that’s not totally true–I could’ve popped some ibuprofen, driven to the office, and tried to stem the flow of nose-leakage for nine hours. But I really wanted to just stay in bed, and so I emailed my boss to give him the news. I rationalized this decision by acknowledging that even if I had gone to work, I probably would’ve been only slightly better than useless, and I would also run the risk of getting somebody else sick. If I were to infect a principal engineer with my cold, and he then had to take a sick day…well, that would be far more expensive for the company. So, you see, it was really in my employer’s best interest that I stayed home to
enjoy the amazing weathernurse a cold. -
Apr 4, 2013
Converting a QFrame to a QWidget
I had spent the better part of yesterday building, integrating, and testing a Qt form that was a single panel on a larger display. This morning I was tasked to “make it a popup” instead.
The back-end to the GUI was a C++ class that inherited a custom
SubFrame
object, which inherits Qt’sQFrame
object. My company also has a customPopup
class. Very similar toSubFrame
, thePopup
class, notably, inherits instead from aQWidget
.I made the appropriate edits to my source code so that
MyFormThing
inheritedPopup
instead ofSubFrame
. It didn’t build, though. ThesetupUi()
method in the Qt-generated Ui file expected aQFrame *
input parameter, but fromMyFormThing
I was passingthis
to the method—this
now being aQWidget *
. My GUI, as far as the .ui file went, was still aQFrame
. It needed to be aQWidget
.Simply casting the
QWidget
to aQFrame
won’t work, since aQWidget
is a not aQFrame
. This:ui->setupUi(dynamic_cast<QFrame *>(this));
will build, but it will not run very far—the messed up dynamic cast throws an exception and a core dump is born.
I knew I needed to change the .ui file, somehow, to make my
QFrame
aQWidget
. Qt Creator doesn’t, AFAIK, give the ability to do this kind of morph—at least not in version 1.3.1, which is what’s installed on our lab computers. And obviously I wasn’t going to rebuild the whole thing from scratch starting with aQWidget
base. Some quick Googling led me here.The .ui files in Qt are just XML. Near the top of the
MyFormThing.ui
file, I found this:<widget class="QFrame" name="MyFormThing">
<property name="frameShape"> <enum>QFrame::WinPanel</enum> </property>
<property name="frameShadow"> <enum>QFrame::Raised</enum> </property>
So I changed
class="QFrame"
toclass="QWidget"
, deleted the frame-specific properties, and rebuilt/ran without issue. When I inspected the GUI element in Qt Creator’s Form Designer, it said it was aQWidget
, so it looks like that worked.tl;dr Change a
QFrame
into aQWidget
by directly editing the XML in the .ui files. -
Apr 3, 2013
This Site Needs Infinitely More GIFs
Today I set up this website. This blog section here was a Wordpress install–v straightforward. The rest of the site, which I haven’t thought much about yet, is currently just the HTML5 Boilerplate template.
I also set up a Git repository and a locally hosted copy of the site (MAMP ilu). I haven’t used Git that much, but the commands are similar to SVN. Also spent some time live-chatting the hosting company’s tech support to set up SSH access to the server.
Eventually, this blog will be a place where I can talk about CS and programming-related things. While I’m here, let’s see how code looks with this theme:
git init
printf("Hello cruel world\n");
I have a vague sense that the landing page of my site will just be a glorified ‘About’ page with a bunch of links to different hosted projects. I like having this lil website. Hi.
-
Apr 3, 2013
First Post
Hello. Eventually there will be some content here. Thanks for visiting :)
- 13
- 14
- •
Recent Posts
- Generative AI Accelerates Our Exploration of the Search Space
- AI Assistant Use-Case: Performance Feedback
- Poor Man's Computer Use with Execute Arbitrary AppleScript MCP Server
- Please don’t disable paste
- Blogging via Email
- Using an E-Ink Monitor: Part 2
- AI and the Uncertain Future of Work
- Using an E-Ink Monitor
- Rendering ChatGPT HTML Output Inline
- Responding to recruiter emails with GPT-3