Если необходимо в ts файле перевода добавить перенос строки, то \n обычно не срабатывает.
Тогда необходимо при редактировании ts файла нажать Enter.
Additional info here.
Ярлыки
- С++ (3)
- Стихи (1)
- тонировка (1)
- Цитаты (2)
- ALTlinux (1)
- Apache (2)
- big-endian (1)
- Blogger (1)
- books (3)
- books links (1)
- Buisness (10)
- C (1)
- C# (5)
- c++ (27)
- car (8)
- Cheat (1)
- CSS (1)
- DLL (1)
- Draw (1)
- Eclipse (2)
- Films (1)
- Firefox (4)
- Flash (1)
- GTK (2)
- GUI (1)
- Home server (1)
- Hotels (1)
- HTML (6)
- IE (1)
- Internet (2)
- Java (1)
- JavaScript (6)
- jQuery (1)
- KDE (1)
- KeeTouch (1)
- Linux (34)
- little-endian (1)
- Makefile (1)
- MFC (6)
- multi-thread (2)
- Music (1)
- ODBC (2)
- OpenBox (2)
- photo (4)
- PHP (38)
- programing (2)
- proxy (1)
- QML (37)
- Qt (41)
- QtCreator (2)
- RegExp (3)
- Shopping (12)
- shutdown (1)
- Soft (1)
- Sound Card (1)
- SQL (1)
- SQL Server (14)
- Subversion (1)
- SVN (1)
- teach (4)
- text-editor (1)
- Travels (1)
- Ubuntu (38)
- Upstart (1)
- Vi (2)
- VirtualBox (2)
- Virtualization (1)
- vkontakte.ru (1)
- Web (2)
- Web-Kit (5)
- WinAPI (7)
- Windows (4)
вторник, 9 октября 2018 г.
четверг, 27 сентября 2018 г.
QML - set default font
If you want set font for all items in ApplicationWindow.
In main.cpp you must configure QFont and set it to QApplication.
Additional info here.
QApplication app(argc, argv);
QFont font;
font.setPixelSize(20);
app.setFont(font);
}
Additional info here.
QtCreator highlight current line
If you want highlight current line in editor
Main menu: Tools > Options > Text Editor > Display > Highlight current line
Main menu: Tools > Options > Text Editor > Display > Highlight current line
QML - SystemPalette visible in all files
If you want use system colors create static variable in special singleton object.
And then use it.
Additional info here.
// Style.qml
pragma Singleton
import QtQuick 2.11
QtObject {
property SystemPalette palette: SystemPalette { colorGroup: SystemPalette.Active }
}
And then use it.
import QtQuick 2.0
Rectangle {
color: Style.palette.highlight
}
Additional info here.
четверг, 30 августа 2018 г.
QtCreator - missing main menu
To open settings window in QtCreator
Additional info here.
- 1. Switch to debug mode
- 2. Right click on 'Name|Value|Type' area
- 3. In menu choose 'Configure debugger'
- 4. Configure hot keys in 'Envioronment' tab
Additional info here.
четверг, 16 августа 2018 г.
Qt - check QObject derived class type
понедельник, 16 июля 2018 г.
QML - nested ListView
Example of using DelegateModel for hierarchical tree of data.
Additional info here.
import QtQuick 2.0
import QtQuick.Controls 2.2
import QtQml.Models 2.3
ListView {
id: view
anchors.fill: parent
focus: true
highlight: Rectangle {
width: view.width; height: view.currentItem.height
y: view.currentItem.y
color: "blue"
}
highlightFollowsCurrentItem: true
model: DelegateModel {
model: catalogTreeModel //common QAbstractItemModel model
delegate: Item {
width: view.width; height: colDlg.height
Column {
id: colDlg
width: view.width
height: itemDlg.height + subView.height
Item {
id: itemDlg
width: view.width
height: childrenRect.height
Text { text: session }
MouseArea {
anchors.fill: parent
propagateComposedEvents: true
onClicked: {
view.currentIndex = index
subView.shown = !subView.shown
} //onClicked:
} //MouseArea
} //Item
ListView { // nested ListView
id: subView
property int parentIndex: index
property bool isParrentSelected: view.currentIndex===index
property bool shown: false
width: view.width; height: shown ? /*_rowsCount * 25*/ subView.count * 25 : 0
visible: shown
enabled: shown
highlight: Rectangle {
id: subHighlight
visible: subView.isParrentSelected
focus: true
color: "red"
} //highlight:
model: DelegateModel {
model: catalogTreeModel
rootIndex: view.model.modelIndex(subView.parentIndex) // change root index for nested branch
delegate: Item {
width: view.width; height: txt.contentHeight
Text { id: txt; text: session }
MouseArea {
anchors.fill: parent
z: 1
hoverEnabled: true
propagateComposedEvents: true
onClicked: {
subView.currentIndex = index
view.currentIndex = subView.parentIndex
} //onClicked:
} //MouseArea
} //delegate:
} //model
} //ListView
} //Column
} //delegate:
} //model:
} //ListView
Additional info here.
пятница, 6 апреля 2018 г.
KDE - одинаковые панели на каждом экране
При подключении второго монитора в KDE обычно системная панель не появляется, поэтому ее необходимо добавить.
- На экране нажимаем правую кнопку мыши.
Add Panel > Default panel (если вы хотите настроить свою панель выберите Application Menu Bar)
- Если панель появилась не на нужной стороне:
Правой кнопкой мыши по панели.
Panel Options > Panel Settings
Нажимаем на Screen Edge и тащим к нужной грани экрана.
Более подробно тут.
- На экране нажимаем правую кнопку мыши.
Add Panel > Default panel (если вы хотите настроить свою панель выберите Application Menu Bar)
- Если панель появилась не на нужной стороне:
Правой кнопкой мыши по панели.
Panel Options > Panel Settings
Нажимаем на Screen Edge и тащим к нужной грани экрана.
Более подробно тут.
понедельник, 2 апреля 2018 г.
QQuickItem добавить дочерний элемент
Если необходимо чтобы один элемент рисовал поверх другого, то его необходимо сделать потомком.
Это можно сделать передав родительский QQuickItem в конструктор потомка или вызвав метод setParentItem(parent) в потомке.
Более подробно тут.
Более подробно тут.
четверг, 29 марта 2018 г.
Qt - QAbstractItemModel обновить при добавлении содержимого
Для обновления связанных с моделью представлений необходимо использовать beginInsertRows() endInsertRows() во время добавления данных.
А в конце еще выпустить сигнал dataChanged().
Более подробно тут.
Более подробно тут.
QML - TreeView скроллинг к текущему элементу
Если размер содержимого превышает размер TableView необходимо проскроллировать до текущего элемента.
Для этого необходимо использовать скрытую переменную __listView.
Более подробно тут.
__listView.positionViewAtIndex(row, mode)
Более подробно тут.
QML - ListView прокрутить до выбранного значения
Если содержимое ListView превышает его размеры, то возможно понадобится программно совершить прокрутку до выделенного элемента, для этого используется positionViewAtIndex
Более подробно тут.
ListView {
id: listView
onCurrentIndexChanged: {
positionViewAtIndex(currentIndex, ListView.Visible)
}
}
Более подробно тут.
QML - TreeView выделить строку программно
Если есть необходимость выделить строку из JavaScript необходимо использовать selection.setCurrentIndex.
Более подробно тут и тут.
import QtQml.Models 2.2
TreeView {
id: viewPerSe
selection: ItemSelectionModel {
model: viewPerSe.model
}
}
function select (idx) {
viewPerSe.selection.setCurrentIndex(idx, ItemSelectionModel.ClearAndSelect)
}
Более подробно тут и тут.
понедельник, 19 марта 2018 г.
QML - TableViewColumn delegate вывести значение роли
четверг, 15 марта 2018 г.
QML - перенаправить вывод в свой C++ обработчик
Если есть необходимость использовать например свой логгер.
Если это делать на стороне QML то могут возникнуть сложности с получением контекста, который хранит информацию о файле и строке.
По аналогии с макросами __LINE__ __FILE__ в C++.
Единственный найденный вариант это подменить обработчик сообщений методом qInstallMessageHandler().
Более подробно тут, тут, тут и тут.
#include
#include
#include
void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
QByteArray localMsg = msg.toLocal8Bit();
switch (type) {
case QtDebugMsg:
fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtInfoMsg:
fprintf(stderr, "Info: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtWarningMsg:
fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtCriticalMsg:
fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtFatalMsg:
fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
abort();
}
}
int main(int argc, char **argv)
{
qInstallMessageHandler(myMessageOutput);
QApplication app(argc, argv);
...
return app.exec();
}
Более подробно тут, тут, тут и тут.
вторник, 13 марта 2018 г.
QBS - прописать define
Для прописывания define в QBS есть модуль cpp, в который можно прописать необходимые дефайны разделенные запятой.
Более подробно тут.
cpp.defines: ["CONFIG__H","QML_VER"]
Более подробно тут.
вторник, 6 марта 2018 г.
QML - Button сделать нажатой
Если необходимо после нажатия на Button оставить ее в нажатом состоянии.
Можно установить свойство down в true.
Более подробно тут.
Button {
id: but
text: qsTr("Text")
width: implicitWidth
height: implicitHeight
onClicked: {
down = true // button is visually down
checked = true // button is checked
}
}
Более подробно тут.
понедельник, 5 марта 2018 г.
QML - vertical TabBar
Если необходимо повернуть панель вертикально, то могут быть сложности с привязкой к соседним элементам.
Т.к. похоже размеры повернутого элемента не пересчитываются и соседний элемент находится на расстоянии как будто панель не повернута.
Для этого панель необходимо положить на элемент у которого размеры заданны заранее и тогда у соседнего элемента привязки будут рассчитаны корректно.
Более подробно тут.
import QtQuick 2.0
Item { //base component
id: baseBar
width: but1.height // width as TabBar height before rotation
height: parent.height
TabBar {
id: modeBar1
width: parent.height
height: but1.height
transform: [
Rotation { origin.x: 0; origin.y: 0; angle: -90} // rotate around the upper left corner counterclockwise
,Translate { y: baseBar.height; x: 0 } // move to the bottom of the base
]
TabButton {
id: but1
text: qsTr("Button1")
}
TabButton {
text: qsTr("Button2")
} //TabBar
} //Item
Более подробно тут.
пятница, 2 марта 2018 г.
QML - ListView highlight не виден
четверг, 1 марта 2018 г.
QML - определить что обьект принадлежит определенному типу
Начиная с Qt 5.10 появилась возможность проверять тип обьекта
Более подробно тут и тут.
import QtQuick 2.0
Item {
// two QML items, used for type checking
Item { id: testItem }
Rectangle { id: testRect }
// function to check wheter an item is a Rectangle
function isRectangle(item) {
return item instanceof Rectangle
}
// type check example
Component.onCompleted: {
console.log("testItem is Rectangle? "+isRectangle(testItem))
console.log("testRect is Rectangle? "+isRectangle(testRect))
}
}
Более подробно тут и тут.
Подписаться на:
Сообщения (Atom)