[GH-ISSUE #167] Documentation #107

Open
opened 2026-05-05 11:04:56 -06:00 by gitea-mirror · 9 comments
Owner

Originally created by @SwiTool on GitHub (Sep 19, 2019).
Original GitHub issue: https://github.com/qmlnet/qmlnet/issues/167

Hello,
First of all, thanks @pauldotknopf (and all contributors) to make the dream – to have a C# crossplatform UI library – come true.
This fits perfectly my needs.

But there's a lack of documentation, and I can understand because the project is pretty new.

I could contribute on writing it, oh god if only I could.
I have not a lot experimentation with C# nor with Qt (although for the last one, I have a bit, but still, it's from school memories), and I truly need to know the uses cases and more in depth, the usage, best practices and bad practices, etc.

The "quick start" is good to setup the library. The first tutorial https://github.com/Jodeldiplom/qmlnet-tutorials (thanks @Jodeldiplom) is basically the same as the quick start, and the second is quite good but not enough because there are no signals.

The PhotoFrame example is well detailed, but as a beginner in this language, I can't get to understand what's underneath the surface and how it works. And I think to make good things you must be able to understand every part of the program. There can't be "magic working stuff", and for that, I would really like to dig.

It has been 2 days than I'm looking at the source codes, opening them, trying to make changes to understand. But wow, I feel terribly bad because I can't get anything to work when I want to add a feature.

For example, i've been trying to add signals to the Contacts tutorial 02 from @Jodeldiplom, to make the Contact list dynamic. No success (I don't know if it's because I have signals on other types than "string" or "int" that are showed in the examples...).

I don't have excuses, I should be able to make it work since it's not that hard. I understand the Quick Overview, but I would like to know more about the library.

Thank you.

Originally created by @SwiTool on GitHub (Sep 19, 2019). Original GitHub issue: https://github.com/qmlnet/qmlnet/issues/167 Hello, First of all, thanks @pauldotknopf (and all contributors) to make the dream – to have a C# crossplatform UI library – come true. This fits perfectly my needs. But there's a lack of documentation, and I can understand because the project is pretty new. I could contribute on writing it, oh god if only I could. I have not a lot experimentation with C# nor with Qt (although for the last one, I have a bit, but still, it's from school memories), and I truly need to know the uses cases and more in depth, the usage, best practices and bad practices, etc. The "quick start" is good to setup the library. The first tutorial [https://github.com/Jodeldiplom/qmlnet-tutorials](here) (thanks @Jodeldiplom) is basically the same as the quick start, and the second is quite good but not enough because there are no signals. The PhotoFrame example is well detailed, but as a beginner in this language, I can't get to understand what's underneath the surface and how it works. And I think to make good things you must be able to understand every part of the program. There can't be "magic working stuff", and for that, I would really like to dig. It has been 2 days than I'm looking at the source codes, opening them, trying to make changes to understand. But wow, I feel terribly bad because I can't get anything to work when I want to add a feature. For example, i've been trying to add signals to the Contacts tutorial 02 from @Jodeldiplom, to make the Contact list dynamic. No success (I don't know if it's because I have signals on other types than "string" or "int" that are showed in the examples...). I don't have excuses, I should be able to make it work since it's not that hard. I understand the [Quick Overview](https://github.com/qmlnet/qmlnet#quick-overview), but I would like to know more about the library. Thank you.
Author
Owner

@SwiTool commented on GitHub (Sep 20, 2019):

Okay so by navigating over the issues, I found @MaxMommersteeg repositories, the Chat and Todo projects are concrete usage examples.
It would make sense to put the lights on them for people to see concrete usage of the library :

From there I have some questions :

  • What does ITypeCreator do and why should we use it ?
  • Does ctrl.addTodoItem references to TodoItemsController.AddTodoItem ? It means QMLNet is transcripting the name, right ? I read in the naming convention that QML methods should be in camelCase.
  • I see some variables with underscores at the beginning, are those variables not to be used in QML ? I would understand the camelCase transcription, but if I'm right, why is that ?

I'll put more questions if I have, but I see a bit clearer with the sample projects.
Please no offense if I ask stupid questions. I'm sure this could help others too.
Thank you !

<!-- gh-comment-id:533578463 --> @SwiTool commented on GitHub (Sep 20, 2019): Okay so by navigating over the issues, I found @MaxMommersteeg repositories, the Chat and Todo projects are concrete usage examples. It would make sense to put the lights on them for people to see concrete usage of the library : - [https://github.com/MaxMommersteeg/Qml.Net.TodoApp](TodoApp) - [https://github.com/MaxMommersteeg/Qml.Net.Chat](Chat) From there I have some questions : - What does [ITypeCreator](https://github.com/MaxMommersteeg/Qml.Net.TodoApp/blob/master/src/TodoApp.FrontEnd/Program.cs#L42) do and why should we use it ? - Does [ctrl.addTodoItem](https://github.com/MaxMommersteeg/Qml.Net.TodoApp/blob/master/src/TodoApp.FrontEnd/Pages/TodoItemPage.qml#L41) references to [TodoItemsController.AddTodoItem](https://github.com/MaxMommersteeg/Qml.Net.TodoApp/blob/master/src/TodoApp.FrontEnd/Controllers/TodoItemsController.cs#L41) ? It means QMLNet is transcripting the name, right ? I read in the naming convention that QML methods should be in camelCase. - I see some variables with underscores at the beginning, are those variables not to be used in QML ? I would understand the camelCase transcription, but if I'm right, why is that ? I'll put more questions if I have, but I see a bit clearer with the sample projects. Please no offense if I ask stupid questions. I'm sure this could help others too. Thank you !
Author
Owner

@pauldotknopf commented on GitHub (Sep 20, 2019):

  1. ITypeCreator allows you to resolve instances of your QML types from something like a container (dependency injection).
  2. Yes. Everything is converted to camalCase.
  3. I'm not sure what you are looking at here. There shouldn't be any underscore prefixes.
<!-- gh-comment-id:533653396 --> @pauldotknopf commented on GitHub (Sep 20, 2019): 1) ```ITypeCreator``` allows you to resolve instances of your QML types from something like a container (dependency injection). 2) Yes. Everything is converted to camalCase. 3) I'm not sure what you are looking at here. There shouldn't be any underscore prefixes.
Author
Owner

@pauldotknopf commented on GitHub (Sep 20, 2019):

By the way, thanks for the kinds words. I'd love some help in documenting this thing. I use it in production myself, currently, but I can see why others would be hesitant to use it.

<!-- gh-comment-id:533653673 --> @pauldotknopf commented on GitHub (Sep 20, 2019): By the way, thanks for the kinds words. I'd love some help in documenting this thing. I use it in production myself, currently, but I can see why others would be hesitant to use it.
Author
Owner

@SwiTool commented on GitHub (Sep 20, 2019):

For the point 3, here is _todoItemService. Why not TodoItemService for example ?

No problem, I really mean it.
Actually the code is well commented, but it truly needs tuts or step by step guides. (something to know about the features, because if not written down, the users do not know at what point this lib is incredible)

I can feel your pain 😉

Thanks for the answers. The 1 seems obvious now you said it 😄

<!-- gh-comment-id:533655980 --> @SwiTool commented on GitHub (Sep 20, 2019): For the point 3, [here](https://github.com/MaxMommersteeg/Qml.Net.TodoApp/blob/master/src/TodoApp.FrontEnd/Controllers/TodoItemsController.cs#L14) is `_todoItemService`. Why not `TodoItemService` for example ? No problem, I really mean it. Actually the code is well commented, but it truly needs tuts or step by step guides. (something to know about the features, because if not written down, the users do not know at what point this lib is incredible) I can feel your pain 😉 Thanks for the answers. The 1 seems obvious now you said it 😄
Author
Owner

@vadi2 commented on GitHub (Sep 20, 2019):

_ is the C# convention for private members.

<!-- gh-comment-id:533663222 --> @vadi2 commented on GitHub (Sep 20, 2019): `_` is the C# convention for private members.
Author
Owner

@MaxMommersteeg commented on GitHub (Sep 20, 2019):

My sample apps could be nice starting points for a beginner (since they are created by a Qml beginner (me). But still, they probably contain some not-so-good practices.

I should invest some time in them (and learn some more Qml) to make them more valuable for beginners.

<!-- gh-comment-id:533668070 --> @MaxMommersteeg commented on GitHub (Sep 20, 2019): My sample apps could be nice starting points for a beginner (since they are created by a Qml beginner (me). But still, they probably contain some `not-so-good practices`. I should invest some time in them (and learn some more Qml) to make them more valuable for beginners.
Author
Owner

@ghost commented on GitHub (Oct 11, 2019):

Does anybody know if there is a subreddit or discord dedicated to qml.net? I feel like it would be very beneficial for us early adopters to have a place where we could share our knowledge and help each other out. If there aren't any, maybe we could get together and create one?

<!-- gh-comment-id:541097531 --> @ghost commented on GitHub (Oct 11, 2019): Does anybody know if there is a subreddit or discord dedicated to qml.net? I feel like it would be very beneficial for us early adopters to have a place where we could share our knowledge and help each other out. If there aren't any, maybe we could get together and create one?
Author
Owner

@pauldotknopf commented on GitHub (Oct 11, 2019):

The Gitter channel is all we got right now.

https://gitter.im/qmlnet/Lobby

<!-- gh-comment-id:541099602 --> @pauldotknopf commented on GitHub (Oct 11, 2019): The Gitter channel is all we got right now. https://gitter.im/qmlnet/Lobby
Author
Owner

@Etchelon commented on GitHub (Nov 11, 2019):

On that matter, I'd like to have some replies in that channel by the way, everyone disappeared after I joined 😢
Anyway thanks a lot for making this! I love QML but C++ is... hard to use after getting used to C# and Javascript for web development. With your library I can now write Windows apps easily.

<!-- gh-comment-id:552527083 --> @Etchelon commented on GitHub (Nov 11, 2019): On that matter, I'd like to have some replies in that channel by the way, everyone disappeared after I joined 😢 Anyway thanks a lot for making this! I love QML but C++ is... hard to use after getting used to C# and Javascript for web development. With your library I can now write Windows apps easily.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/qmlnet#107
No description provided.