Red de conocimiento informático - Material del sitio web - Cómo optimizar el rendimiento de QTableView

Cómo optimizar el rendimiento de QTableView

1. Establezca manualmente la longitud fija de los datos del encabezado. Por ejemplo, los datos que pueden aparecer en el encabezado son del 1 al 100000, luego usamos el más largo como estándar y completamos los espacios si no es lo suficientemente largo. De esta manera, no es necesario configurar configuraciones adaptativas y la actualización y el cambio de tablas se pueden completar instantáneamente. Pero el precio es que el encabezado es muy feo y hay un espacio en blanco grande cuando los datos son 2. Cuando se usan los datos del encabezado más grandes actuales, solo necesita usar QFontMetrics para calcular el ancho de los datos y luego configurar el ancho fijo () del encabezado. Esto es factible en teoría, pero es muy feo en la práctica. Después de ajustar el ancho, la parte adicional es solo el color de fondo del QWidget y la información del texto no se dibuja, lo que resulta en una visualización incompleta del texto del encabezado y un dibujo incompleto. del efecto de encabezado correcto. tableView->verticalHeader()->setFixedWidth(ancho);

ancho = ui->tableView->columnWidth(0);

ui->tableView->setColumnWidth(0, 0);

ui->tableView->setColumnWidth(0, width);

El código anterior hará que el diseño de la tabla cambie y active un redibujado global de la tabla. restablecer el ancho El encabezado también se mostrará normalmente. El encabezado se puede mostrar normalmente después de restablecer el ancho. Dado que ninguna de las columnas o encabezados está configurado como adaptable, este rediseño es muy eficiente. Los resultados finales del perfil son los siguientes: - Después de configurar el modo adaptable, el tiempo de actualización de la tabla no supera los 10 milisegundos. Pero se necesitan unos 10 milisegundos para readaptar el encabezado. - Después de desactivar la adaptación automática, el encabezado de la tabla se adapta configurando manualmente un ancho fijo y la actualización de datos más el encabezado de la tabla adaptable no toma más de 20 ms en total.