ClockWindow::ClockWindow()
{
	...
	timer = new QTimer(this);
	connect(timer, SIGNAL(timeout()), this, SLOT(repaint()));
	timer->start(1000);
}
void ClockWindow::paintEvent(QPaintEvent *event)
{
	setPalette(QPalette(clockSettings.bgColor));
	
	QDateTime currentDatetime = QDateTime::currentDateTime();
	
	QPainter painter(this);
	painter.setFont(clockSettings.font);
	QFontMetrics fontMetrics(clockSettings.font);
	QString textToDisplay = currentDatetime.toString(clockSettings.currentDatetimeFormat);
	QRect endRect = painter.boundingRect(x(), y(), width(), height(), 0, "  "+textToDisplay+"  ");
	if (endRect != startRect) {
		setGeometry(endRect);
	}
	if (clockSettings.border) {
		painter.setPen(clockSettings.borderColor);
		painter.drawRect(0, 0, width() - 1, height() - 1);
	}
	painter.setPen(clockSettings.fontColor);
	painter.drawText((width() - fontMetrics.width(textToDisplay)) / 2, fontMetrics.ascent(), textToDisplay);
}
Некоторые вещи нужно переделать правда, а то ширина сиволов в некоторых шрифтах не совпадает и видно, как окошко меняет размер при разных цифрах, что не есть гут. Но пока не знаю, как сие организовать мудро.