Janela de Diálogo - Pop-up
Pop up: O pop-up é um tipo de janela que se abre no navegador ao visitar uma página web ou acessar uma hiperligação específica. O pop-up é utilizado por autores de sites para abrir alguma informação extra ou como meio de propaganda.
Tipo de QML pop-up
Tipo básico de controles de interface de usuário semelhantes a pop-up.
Lista de todos os membros, incluindo membros herdados
Propriedades
Funções Públicas
Descrição detalhada
Um QTableView implementa uma visualização de tabela que exibe itens de um modelo. Esta classe é usada para fornecer tabelas padrão que foram fornecidas anteriormente pela classe QTable, mas usando a abordagem mais flexível fornecida pela arquitetura model/view do Qt.
A classe QTableView é uma das classes Model/View e faz parte do framework model/view do Qt .
QTableView implementa as interfaces definidas pela classe QAbstractItemView para permitir a exibição de dados fornecidos por modelos derivados da classe QAbstractItemModel.
Navegação
Você pode navegar pelas células da tabela clicando em uma célula com o mouse ou usando as teclas de seta. Como o QTableView habilita tabKeyNavigation por padrão, você também pode pressionar Tab e Backtab para mover de célula para célula.
Aparência Visual
A tabela tem um cabeçalho vertical que pode ser obtido usando a função verticalHeader() e um cabeçalho horizontal que está disponível através da função horizontalHeader(). A altura de cada linha na tabela pode ser encontrada usando rowHeight(); da mesma forma, a largura das colunas pode ser encontrada usando columnWidth(). Como ambos são widgets simples, você pode ocultar qualquer um deles usando suas funções hide(). Cada cabeçalho é configurado com suas propriedades highlightSections e sectionClickable definidas como true.
Linhas e colunas podem ser ocultadas e mostradas com hideRow(), hideColumn(), showRow() e showColumn(). Eles podem ser selecionados com selectRow() e selectColumn(). A tabela mostrará uma grade dependendo da propriedade showGrid.
Os itens mostrados em um modo de exibição de tabela, como os de outros modos de exibição de item, são renderizados e editados usando delegados padrão . No entanto, para algumas tarefas, às vezes é útil poder inserir widgets em uma tabela. Widgets são definidos para índices específicos com a função setIndexWidget() e posteriormente recuperados com indexWidget().
Pop-up Layout
O implicitWidth e o implicitHeight de um pop-up geralmente são baseados nos tamanhos implícitos do plano de fundo e do item de conteúdo, além de quaisquer inserções e preenchimentos. Essas propriedades determinam o tamanho do pop-up quando nenhuma largura ou altura explícita for especificada.
A geometria do contentItem é determinada pelo preenchimento. O exemplo a seguir reserva um preenchimento de 10px entre os limites do pop-up e seu conteúdo:
Popup {
topInset: -2
leftInset: -2
rightInset: -6
bottomInset: -6
background: BorderImage {
source: ":/images/shadowed-background.png"
}
Em primeiro lugar, gostaria de recomendar o exemplo de sinalizadores do Windows dos documentos do Qt. Ele fornece uma boa amostra para brincar com este tópico. Neste exemplo, um QWidget é derivado para mostrar o efeito dos sinalizadores distintos. Isso me levou à ideia de que provavelmente qualquer QWidget pode ser usado para isso se o Qt::WindowFlags apropriado estiver definido.
Eu escolhi QLabel porque
- Ele pode exibir texto
- Ele herda do QFrame e, portanto, pode ter um quadro.
Código da mainwindow.cpp:
mainwindow.cpp
#include <QApplication>
#include <QLabel>
#include <QMainWindow>
#include <QTimer>
using namespace std;
int main(int argc, char **argv)
{
cout << QT_VERSION_STR << endl;
// main application
#undef qApp // undef macro qApp out of the way
QApplication qApp(argc, argv);
// setup GUI
QMainWindow qWin;
qWin.setFixedSize(640, 400);
qWin.show();
// setup popup
QLabel qPopup(QString::fromLatin1("Some text"),
&qWin,
Qt::SplashScreen | Qt::WindowStaysOnTopHint);
QPalette qPalette = qPopup.palette();
qPalette.setBrush(QPalette::Background, QColor(0xff, 0xe0, 0xc0));
qPopup.setPalette(qPalette);
qPopup.setFrameStyle(QLabel::Raised | QLabel::Panel);
qPopup.setAlignment(Qt::AlignCenter);
qPopup.setFixedSize(320, 200);
qPopup.show();
// setup timer
QTimer::singleShot(1000,
[&qPopup]() {
qPopup.setText(QString::fromLatin1("Closing in 3 s"));
});
QTimer::singleShot(2000,
[&qPopup]() {
qPopup.setText(QString::fromLatin1("Closing in 2 s"));
});
QTimer::singleShot(3000,
[&qPopup]() {
qPopup.setText(QString::fromLatin1("Closing in 1 s"));
});
QTimer::singleShot(4000, &qPopup, &QLabel::hide);
// run application
return qApp.exec();
}