Change hyperlink color in QT

1
2
3
4
5
6
	// ui->btnEdit is a QLabel.
	ui->btnEdit->setText(QString("<a href=\"localhost\"><font color=\"#ff0000\">") + tr("Edit") + QString("</font></a>"));
	ui->btnEdit->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
	connect(ui->btnEdit, &QLabel::linkActivated, [=, this](QString url) {
		...
	});

refer to:
https://www.lmlphp.com/user/507/article/item/13949

QTimeLine starts very slowly

Need to set the time line execution curve as linear.

1
2
3
4
5
	m_time_line.reset(new QTimeLine(m_span_msecs * count, this));
	m_time_line->setFrameRange(0, count);
	m_time_line->setEasingCurve(QEasingCurve::Linear);
	// below is deprecated
	//m_time_line->setCurveShape(QTimeLine::LinearCurve);

refer to:
http://www.wjhsh.net/rickyk-p-4044875.html

Retrieve all widgets after times of calling addWidget at same position

Don't call QGridLayout::itemAtPosition.

Like this,

1
2
3
4
5
6
7
8
9
10
11
12
for (int i = 0; i < grid_layout->count(); i++)
{
	QLayoutItem* item = grid_layout->itemAt(i);
 
	if (item->widget() == widget_wanted)
	{
		int row, column, row_span, column_span;
		grid_layout->getItemPosition(i, &row, &column, &row_span, &column_span);
 
		// grid_layout->addWidget(frame, row, column);
	}
}

C++ memo

Term

1
2
RTTI: Runtime Type Identification		// typeid
RAII: Resource Acquisition Is Initialization	// std::mutex

Blender source memo

1
2
3
4
5
6
7
8
9
10
#blender\source\blender\editors
ED_region_do_draw editors\screen\area.c
	outliner_main_region_draw editors\space_outliner\space_outliner.cc
		draw_outliner editors\space_outliner\outliner_draw.cc
			outliner_buttons
				UI_but_active_only editors\interface\interface.cc
					UI_but_active_only_ex
						ui_but_activate_event editors\interface\interface_handlers.c
							ui_do_button
								ui_do_but_TEX

Python Operator Precedence

The upper operators have higher precedence than the lower.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Grouping			()
Function call			f()
Slicing				[index:index]
Array subscription		[]
Bitwise NOT			~x
Unary plus/minus		+, -
Mul/Div/Mod			*, /, %
Add/Sub				+, -
Bitwise shift			<<, >>
Bitwise AND			&
Bitwise XOR			^
Bitwise OR			|
Relation			==, !=, >, >=, <, <=, is, is not, in, not in
				not
				and
				or
				lambda

refer to:
https://discuss.codechef.com/t/operator-precedence-table/14545

Stunning forbidden keyword about QSettings

1
2
3
4
5
    QSettings cfg(CONFIG_INI_PATH, QSettings::IniFormat);
    cfg.beginGroup("general"); // <-- other keywords are all ok.
    std::string val = cfg.value("itemCount").toString().toStdString();
    int video_count = cfg.value("itemCount").toInt();
    cfg.endGroup();

'general' keyword will lead 'val' to output empty in Qt5.15.2.