GithubHelp home page GithubHelp logo

juangburgos / wtdesigner Goto Github PK

View Code? Open in Web Editor NEW
67.0 11.0 24.0 1.73 MB

License: GNU General Public License v3.0

C++ 72.32% CSS 9.92% JavaScript 15.43% Shell 0.17% QMake 2.16%
qt qt5 cpp cplusplus website wt-library

wtdesigner's Introduction

WtDesigner


Download Windows Binaries (64-bits)

  • Install "vcredist_x64.exe" before running WtDesigner for the first time.
  • Run WtDesigner with Administrator rights in Windows.

Download Linux Binaries (64-bits)

  • Might be necessary to:
$ chmod +x ./WtDesignerInstallerV.1.0.3.run
  • Tested on CentOS7 and Ubuntu14.04

  • Installer might ask for sudo password to copy WtDesigner.desktop to /usr/shared/applications/.

  • If WtDesigner does not show the webpage contents, hit the Refresh buttton until the contents appear.


What

A WYSIWYG (What You See Is What You Get) front-end editor which serves as bride between HTML/CSS and the Wt C++ library. It helps create web applications using C++ and the Wt library with just a few clicks. It also simplifies the usage of the Wt library by auto generating most of the boilerplate code and previewing the graphics of the end result without having to compile any C++ code.


Who

List of contributors:


Why

Although C++ doesn’t come into mind as the first language for web development, there is a specific number of scenarios in which it can be advantageous with respect to other languages:

  • High performance, resource demanding web applications.
  • Low footprint web GUIs for embedded devices.
  • Integrating with existing C++ libraries.
  • Porting C++ desktop applications into the web.
  • Leveraging existing C++ skill sets for web development.

The Wt (web toolkit) C++ library is the perfect tool to achieve all the previous goals. Wt simplifies developing web applications by using the well-tested widget-centric design patterns of desktop GUI development and an API inspired by the successful Qt C++ library.

As a drawback, the widget-centric workflow sacrifices the full graphical potential of HTML/CSS frameworks. It makes it very easy to create simple working web applications, but very complicated to create a beautiful, responsive, personalized, eye-catching designs.

WtDesigner was created as an attempt to reduce the complexity of creating beautiful web application designs using the Wt library.


How

WtDesigner is a tool which is also inspired by Qt (specifically QtDesigner), and it is based on the Wt library and Qt itself. It provides an easy way to develop the front-end of the web application by means of drag-and-drop elements, blocks and templates. Furthermore, it allows to preview the looks of the application, tweak it and see the results instantly without having to recompile your application.

WtDesigner can be used as a stand-alone application in Windows (and soon Linux and Mac) but it also integrates into your workflow by means of popular IDE plugins (Coming soon...).


Tutorials

Youtube Videos

Thanks

This project could not have been possible without:

wtdesigner's People

Contributors

cls-nebadje avatar jamal-fuma avatar juangburgos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wtdesigner's Issues

Linux build instructions

Hi Juan,

thanks a lot for this great application! I'm on 32bit Linux here (Ubuntu 14.04) and don't want to bother you with yet another binary flavour. Perhaps you can add some build instructions to the global read me - this way any interested party can build WtDesigner on its own.

Regards
Uli

JavaScript Error

Hi Juan,

First of all, thanks for all your precious work on this great tool.
I am a colleague of @cls-nebadje and am about to continue our current Wt project.
For this I have built the WtDesigner on my Ubuntu-16.04 according to #3, i.e.:

  • manually built & installed Wt 3.3.5-rc2
  • manually built WtDesigner (tried both master and develop-uli-less-warnings branches)

Unfortunately I am running into at least one recurring error which I can't seem to get rid of. It is easily reproducible:

  1. start WtDesigner (opening default dummy project)
  2. select wt_root
  3. add a new WSlider
  4. select slider
  5. change slider's maximum value to 100 (or any other number >10)

I then get a JavaScript Alert:
Wt internal error; code: undefined, description: Unexpected number '3'
and the WtDesigner log shows the following verbose error message: wtDesigner.javascript.err.txt
After this trying to save the project naturally fails.
Do you have any idea what might be causing this error? Where should I be looking for the culprit? I would greatly appreciate any hints.

Cheers,
Rolf

Panel titles missing quotes

The code for a panel's title comes out like this:
myPanel->setTitle(My Title);

When it should come out like this:
myPanel->setTitle("My Title");

WtDesigner failed to run due to lib boost version

Hi,
I have libboost-all-dev installed on my machine (version 1.58).
I have installed WtDesigner on my machine (Ubuntu 16.04.1), but when I tried to run WtDesigner is failed complaining in needs version 1.54 installed.
How can I fix this problem?

is WtDesigner Maintaining?

This is very good application for Rapid Page Prototyping?

I have some questions.

    1. do you still support WtDesigner?
    1. do you include Wt 4.0 if you deciced to support this Project?

Because this is very well project and it must be using for each Wt Developers.

Thank you.

differences between windows and linux for the tutorial design

I created a wt design using wt designer using windows (following the tutorial). However, opening it on linux it seems to give different results. In particular, the calculator rows are no longer rows, they are all stacked. I am bit puzzled by this as it just references bootstrap 3 which should be the same under windows and linux.

in particular,

btn-group btn-group-justified
does not "justify" on Linux.

Am I missing something?

Cheers

Build Instructions

Hi @juangburgos,
Thank you so much for this project!
I'm an OS X user, I was wondering if you ever built WtDesigner on a mac, I'd love to give it a try. Do you have any advice/documentation on how to build it?

I tryied the following (from a git clone):

Massimos-MacBook-Pro:WtDesigner epi$ ls
COPYING     TODO.txt    deploy      src
README.md   bin     rec
Massimos-MacBook-Pro:WtDesigner epi$ cd src/
Massimos-MacBook-Pro:src epi$ qmake wtconfig.pri 
Massimos-MacBook-Pro:src epi$ make
clang++ -headerpad_max_install_names -stdlib=libc++ -mmacosx-version-min=10.7 -arch x86_64 -o wtconfig.app/Contents/MacOS/wtconfig    -F/usr/local/Cellar/qt/4.8.7_2/lib -L/usr/local/Cellar/qt/4.8.7_2/lib -LC:/Wt-3.3.5-msvs2013-Windows-x86-SDK/lib -LC:/Wt-3.3.5-msvs2013-Windows-x64-SDK/lib -llibboost_chrono-vc120-mt-1_59 -llibboost_container-vc120-mt-1_59 -llibboost_context-vc120-mt-1_59 -llibboost_coroutine-vc120-mt-1_59 -llibboost_date_time-vc120-mt-1_59 -llibboost_exception-vc120-mt-1_59 -llibboost_filesystem-vc120-mt-1_59 -llibboost_graph-vc120-mt-1_59 -llibboost_iostreams-vc120-mt-1_59 -llibboost_locale-vc120-mt-1_59 -llibboost_log-vc120-mt-1_59 -llibboost_log_setup-vc120-mt-1_59 -llibboost_math_c99-vc120-mt-1_59 -llibboost_math_c99f-vc120-mt-1_59 -llibboost_math_c99l-vc120-mt-1_59 -llibboost_atomic-vc120-mt-1_59 -llibboost_math_tr1f-vc120-mt-1_59 -llibboost_math_tr1l-vc120-mt-1_59 -llibboost_prg_exec_monitor-vc120-mt-1_59 -llibboost_program_options-vc120-mt-1_59 -llibboost_random-vc120-mt-1_59 -llibboost_regex-vc120-mt-1_59 -llibboost_serialization-vc120-mt-1_59 -llibboost_signals-vc120-mt-1_59 -llibboost_system-vc120-mt-1_59 -llibboost_test_exec_monitor-vc120-mt-1_59 -llibboost_thread-vc120-mt-1_59 -llibboost_timer-vc120-mt-1_59 -llibboost_unit_test_framework-vc120-mt-1_59 -llibboost_wave-vc120-mt-1_59 -llibboost_wserialization-vc120-mt-1_59 -llibboost_math_tr1-vc120-mt-1_59 -llibhpdf -lwttest -lwt -lwtdbo -lwtdbofirebird -lwtdbomysql -lwtdbopostgres -lwtdbosqlite3 -lwthttp -lwtisapi -framework QtGui -L/usr/local/opt/openssl/lib -L/usr/local/Cellar/qt/4.8.7_2/lib -F/usr/local/Cellar/qt/4.8.7_2/lib -framework QtCore 
ld: warning: directory not found for option '-LC:/Wt-3.3.5-msvs2013-Windows-x86-SDK/lib'
ld: warning: directory not found for option '-LC:/Wt-3.3.5-msvs2013-Windows-x64-SDK/lib'
ld: library not found for -llibboost_chrono-vc120-mt-1_59
clang-3.9: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [wtconfig.app/Contents/MacOS/wtconfig] Error 1

I have boost installed via homebrew:

Massimos-MacBook-Pro:src epi$ brew info boost
boost: stable 1.60.0 (bottled), HEAD
Collection of portable C++ source libraries
https://www.boost.org/
/usr/local/Cellar/boost/1.60.0_2 (11,059 files, 123.6M) *
  Built from source on 2016-07-22 at 10:09:58 with: --c++11 --with-icu4c --with-mpi --without-single --without-static
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/boost.rb
==> Dependencies
Optional: icu4c ✔
==> Options
--c++11
    Build using C++11 mode
--universal
    Build a universal binary
--with-icu4c
    Build regexp engine with icu support
--with-mpi
    Build with MPI support
--without-single
    Disable building single-threading variant
--without-static
    Disable building static library variant
--HEAD
    Install HEAD version

It seems to look for windows specific files.

thank a lot for any advice!

future request

Looks like a good Tool, but i can't use it, i use Linux with KDE 5 and QT 5
My wish for the future, that Linux user can use it

Crashes on Linux

Hi Juan,

I'm currently on my Ubuntu 14.04 64bit workstation at work and running the linux build. Unfortunately it crashes pretty often. Usually when I hit the refresh button because the webkit-window doesn't display anything or hitting "Apply" in the Preferences.

I will provide you with some gdb backtraces and field tests.

Regards
Uli

wt designer crash linux 64bit.txt

Code for WGroupBox title not generated correctly

Hi Juan,

WtDesigner doesn't set the title in double quotes nor does it decode from UTF8 when generating the code for WGroupBox. When entering Balance the code results in

                        groupbox_balance->setTitle(Balance);

Regards
Uli

Root rights

It should be possible to install WtDesigner without giving root to the installer. The destop file could be installed in home.

Wt 4.0 Support

Do you maintain this project?
Wt 4.0 Has been released along time ago.

Generated ui_xx.h should include WApplication

Hi Juan,

the generated ui_xx.h references Wt::WApplication in several places but does not include the WApplication header which results in a unclean include hierarchy.

Regards
Uli

Wtdesigner problem

Hi Juan
I am a WTDESIGNER newbie.
I have loaded WtDesigner, Cmake and Wt library
I watched your "first app" video but now I'm stuck
When I try to export a saved project to Cmake, it gives me an error that it can't find the WT library files.
I have checked the paths in settings under Cmake, they are OK.
Any ideas?
capture

Getters for UI-elements in generated UI-class

Instead of exposing the actual pointers to the widgets, the generated UI-class should expose them through getters. This way we can prevent some self-injuries.

class Ui_foo
{
public:
    Wt::WContainerWidget *
    wt_root()
    {
        return m_wt_root;
    }
    ...
    Wt::WText *
    text()
    {
        return m_text;
    }
    void setupUi(Wt::WContainerWidget *PageRoot)
    {
        ...
    }
    ...
private:
    Wt::WContainerWidget *m_wt_root;
    Wt::WSlider *m_slider_volume;
    Wt::WPushButton *m_button;
    Wt::WText *m_text;
...
};

Regards
Uli

Remember previous projects

Hi Juan,

WtDesigner should remember previously saved or opened projects. My projects are located deep within some folder structures which makes re-opening a pain.

Regards
Uli

Which version of vcredist?

The readme says to install vcredist_64.
But one vc redist doesn't content all versions (2010, 2013, 2015…).
I suggest to write down which version is implied here.

Content Aligment?

may be you can add editor for WContainerWidget and WLayout for ContentAligment.
you can refer to Qt Creator Designer's items Like horizontal spacer vs...

this very useful and great job. thanks for work. i will be wathing you. :)

Qt Creator plugin

Hi,

I'd like to thank you a lot for great efforts. I suggest to convert this project (or at least create a distro) to Qt Creator plugin instead of standalone one.

If you did, it will be just like Qt Designer in Qt Creator.

BTW, using Wt in Qt Creator much easier than stupid MSVS because build and parsing speed is much much faster in Qt Creator but unfortunately currently this available under Linux & Mac OSX.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.