QString a carbón*
QString("nombre").toStdString().c_str()
c_str() no tiene un '\0' al final, lo que puede provocar algunos errores, que se pueden solucionar mediante los siguientes métodos:
QString xmlPath = "ruta";
const char cXmlName[1024] = {0};
memcpy((void*)cXmlName,xmlPath.toStdString().c_str(),xmlPath.size());
carácter* a QString
QString(QLatin1String(pTextElement->Valor()))
El desarrollo de qml encontró problemas extraños en la versión QT 5.12
1) El problema de que el cursor no se puede mostrar cuando TextField está organizado en el diseño GridView es el siguiente: cuando no hay contenido, se cubre la posición del cursor del cuadro de entrada en la segunda columna. Agregar el margen izquierdo de TextField a 1 en el proxy resuelve este problema
TextField{
id: textSTSN
font.family: myFont
antialiasing: true
font.pixelSize: 16
placeholderTextColor: "#005CFF"
selectByMouse: true
validator:
RegularExpressionValidator {
regularExpression: /^[0-9a-zA-Z]{1,16}$/
}
background: Rectangle {
id: backRect
radius: 4
implicitHeight: 219
implicitWidth: 935
border.width: 1
border.color: activeFocus ? "#005CFF" : "#E8E8E8"
color: "#FAFAFA"
}
}
Component {
id:firstDelegate
Item{
width: (root.width-45)/2
height: 78
//输入框
RegTextField{
id: textEdit1
anchors.left: parent.left
anchors.leftMargin: 1//添加此行解决问题
anchors.top: parent.top
anchors.topMargin: 38
anchors.right: setButton1.left
anchors.rightMargin: 36
height: 40
font.pixelSize: 20
font.family: UI.FontFamily2
verticalAlignment: TextEdit.AlignVCenter
}
}
}
2) La interfaz parpadea cuando se llama al control definido por el usuario para ocultar y mostrar, y el método de depuración se utiliza para bloquear el código línea por línea. Probablemente sea un problema que la posición del control se vea afectada por la posición del diseño. Busqué en Internet y dije que necesito usar el mecanismo de doble almacenamiento en búfer, pero aún no lo sé. Esta tecnología se desvía y adopta una solución para resolver el problema de cambiar la pantalla de inicio de la interfaz Qt Quick -Conocimiento
El problema fundamental es que la computadora no ha activado el modo de alto rendimiento de la tarjeta gráfica. El uso del renderizado suave en principal mejorará de la siguiente manera:
QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Software);