Nuevos en "Qt"
-
estoy empezando en esto, alguien puede decirme cual es la mejor manera de aprenderlo??? gracias
-
Hola
¿Sabes programar? Para programar con Qt necesitas saber de C++ y programación orientada a objetos.
La documentación oficial (en inglés) es muy buena y completa, además de incluir numerosos ejemplos. La puedes consultar online:
http://qt-project.org/doc/o desde el mismo QtCreator. Además si buscas por internet encontrarás vídeos en youtube o manuales:
http://www.taringa.net/posts/linux/16742853/Aprenda-QT-hoy-mismo-Libro-libre-en-Espanol.html
http://qt-project.org/forums/viewthread/21811/Saludos
-
buenas tarde, quisiera hacer una pregunta simple, tengo un MainWindow en donde tengo un menú archivo y dentro un submenu abrir, al hacer click en este despliego un Qdialog, en donde tengo un botón que solo cierra el dialog.
mi pregunta es, como poder desactivar el submenu abrir del MainWindow, desde el Qdialog, despues de cerrarlo.espero puedan ayudarme, cualquier sugerencia se los agradecería…
saludos. -
Hola lincoln
Lo primero es recomendarte que para una nueva pregunta, abras un hilo nuevo, así será más fácil ayudarte y que la solución que te demos ayude a otros.
¿Tienes que desactivar el menú si o si desde el Dialog?
Si siempre que abres el Dialog, luego, cuando se cierra quieres que se desactive el menú, puedes hacerlo justo antes (o después) de abrir la ventana:
@// en el ejemplo la llamé "actionAbrir",
// cámbialo por el nombre que tu le diste// desactivar la opción del menú ui->actionAbrir->setEnabled(false); // crear y abrir la ventana Dialog ventana(this); ventana.exec();
@
Otra cosa es hacer que se desactive la opción dependiendo del resultado que devuelva el Dialog:
@// en el ejemplo la llamé "actionAbrir",
// cámbialo por el nombre que tu le diste// crear y abrir la ventana Dialog ventana(this); ventana.exec(); // Desactivar la opción si retornó "Accepted" if(ventana.exec() == QDialog::Accepted) ui->actionAbrir->setEnabled(false);
@
Te recomiendo que te leas detenidamente la documentación de Qt, te ayudará mucho.
Saludos
-
mira aquí te dejo el código para que lo veas.
este es el código de mainwindow.h
@#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "frmlogin.h"
namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{
Q_OBJECTpublic:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();private slots:
void on_actionIniciar_sesion_triggered();
private:
Ui::MainWindow *ui;
frmLogin *login;
public:
void activarMenu();
};#endif // MAINWINDOW_H@
este es el código de mainwindow.cpp:
@#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){
ui->setupUi(this);
}MainWindow::~MainWindow(){
delete ui;
}void MainWindow::on_actionIniciar_sesion_triggered(){
login=new frmLogin(this);
login->setFixedSize(341,106);
login->exec();
}
void MainWindow::activarMenu(){
ui->actionIniciar_sesion->setEnabled(false);}@
este es el código de frmlogin.h:
@#ifndef FRMLOGIN_H
#define FRMLOGIN_H
#include <QDialog>
namespace Ui {
class frmLogin;
}
class frmLogin : public QDialog{
Q_OBJECTpublic:
explicit frmLogin(QWidget *parent = 0);
~frmLogin();protected slots:
void on_pushButton_clicked();
};#endif // FRMLOGIN_H@
este es el código de frmlogin.cpp
@#include "frmlogin.h"
#include "ui_frmlogin.h"
#include <QMessageBox>
#include "mainwindow.h"
frmLogin::frmLogin(QWidget *parent) : QDialog(parent),ui(new Ui::frmLogin){
ui->setupUi(this);
ui->Password->setEchoMode(QLineEdit::Password);
}frmLogin::~frmLogin(){
delete ui;
}
void frmLogin::on_pushButton_clicked(){
if(ui->Usuario->text()=="lincoln"&&ui->Password->text()=="miclave"){
static_cast<MainWindow*>(parent())->activarMenu();
accept();
}
}
@lo que quiero hacer es, desactivar el menú iniciar sesión del mainwindow desde el dialogo, después e ingresar usuario y contraseña; con ese código lo he logrado, ahora mi pregunta es; esta bien hacerlo asi, utilice es @static_cast<MainWindow*>(parent())->activarMenu();@, o es que hay otra manera de hacerlo. gracias..
-
Hola
Si te funciona, pues ya está, no sé si será la mejor o la única manera, pero bueno, te funciona!!
Saludos