I'm looking for a method to programmatically change the focus to a different panel in the MATLAB App Designer. I have a push-button that I would like to use to shortcut the user to a specific panel in the same UI. My UI is arranged using a series of tab-panels, and I need a way to directly send the user to a different panel.
For normal (non App Designer) MATLAB UI components, I can use the command uicontrol(itemOfInterest); to give focus to a particular element of the UI, but this isn't possible with App Designer. Is there a specific command?
It seems that, for what concerns the App Designer, as of Matlab R2017a, this feature has not been implemented yet. Googling a little bit, I found this question, in which the OP basically asks the same. The provided (and accepted) answer is:
This functionality with "uicontrol" is currently unavailable in App
Designer. I have forwarded your feedback to our developers and they
will consider adding support for this in a future release of MATLAB.
With a little bit of patience, the focus support will be introduced in a new Matlab release. Meanwhile, I suggest you to do some research focusing on undocumented Matlab features and underlying Java components. With a little bit of luck and findjobj you could be able to achieve what you are looking for.
Related
We have a winforms application that uses parent/child forms written in .net framework. With .net framework being retired we are evaluating which .net core technology we should be looking at to convert our application to.
One of these technologies we are looking at is MAUI, there is some appeal to making our application cross platform however there isn't a lot there yet on this besides the very simple tutorials put out by Microsoft.
Does MAUI support loading and displaying child forms inside of a parent?
Or is it like WPF and only support custom controls?
Any guidance is greatly appreciated.
Depends exactly what you mean by a "form".
In Maui, by definition, a Page fills the window.
Its easy enough to make a ContentView that contains a "form". BUT, similar to WPF, you won't have some "lifecycle events" on those views. E.g. there is no event when a ContentView appears. A work-around is to put needed logic in constructor, OR have constructor attach an event handler to the containing page's OnAppearing method.
Bottom line: Its similar to WPF. But there is a work-around for whatever functionality you are accustomed to at the "form" level. (BTW, similar work-around is possible in WPF.)
For a more detailed answer, you'll need to research Maui, attempt to write equivalent Maui code. If you get stuck, Create a new question with the original WinForms code and the Maui attempt (that does not work). Explain what you want to happen, and what actually happens (or does not happen).
Bonus Tip: If you only need to run on Windows, then WinUI 3 (aka Windows Desktop App) is an alternative that may give you more functionality that you are accustomed to.
Importantly, mouse/keyboard/tooltip support in Maui is currently limited to what makes sense on mobile devices. No event for mouse hover - which also means no tooltips. No "global" key hooks (an Entry has a TextChanged event, which sees each character added to that Entry, when it has focus. But that doesn't help if you want a key to do something when no text element has focus.)
[OPINION] Full mouse/keyboard/tooltip support is often requested; I expect some solution sometime in 2023.
Bonus Tip #2: WinForms has been migrated to .Net 6+. [OPINION] Microsoft seems committed to keeping it alive. I wouldn't develop a new app on it, but for legacy WinForms code that would be the "cheapest" development option. Long-term, I would favor Maui for cross-platform, WinUI 3 for Windows only.
VSCode has a very customizable UI with Activity Bar, Sidebar, Tabs, Status Bar etc (https://code.visualstudio.com/docs/getstarted/userinterface); customizable via extensions and seems to have been developed without any of the common web frameworks (https://github.com/microsoft/vscode/issues/99845).
It is well maintained, works in different OSes and has automatic updates.
Even if we remove the code-editor part, there is a lot of work in that.
This makes me wonder if it is possible to write a totally different app (not a code editor) on top of VSCode. For example a Slack-like messaging app, an Obsidian-like knowledge base app, etc.
Is it possible? Are there apps built on top of this code? Have I missed an important point that makes this idea unviable?
EDIT:
Some have pointed a very valid point. Some of what I mentioned here as VSCode features are really Electron features that VSCode inherits. Having developed an Electron app (5yrs ago) I see many things in VSCode that are not in Electron (but maybe my concept of Electron is wrong).
I want to emphasize that VSCode UI (bars, tabs, etc) + its extensibility seems to be a valid development framework. And I am ignorant of anything in this sense.
EDIT (jan/2023):
I guess we can add StackBlitz as a product that just did that.
I think your question is very valid and I was wondering the same thing, so thanks for asking it.
One thing that VS Code gives you that Electron doesn't is a distribution model - the marketplace and how new versions of your app can be detected and downloaded automatically etc. This is a big deal.
I think the disadvantages are that a very fancy UX may not be possible directly - but you have to "work around" by putting HTML within a Web View perhaps. This is just my guess and I haven't directly tried it.
To answer your question - the only one I am aware of is Thunder Client - so think of Postman - but as a VS Code plugin.
See also https://stackoverflow.com/a/67069697/314780 , which points to Eclipse Theia which uses parts from Visual Studio Code (i.e "Code - OSS") - https://theia-ide.org/ . The site links to a number of IDE-style apps built on top of it.
VS Code is an electron app. You might want to research what electron is – because you mention it: The Slack app is built on that same framework.
So, you've just invented something that already is done, very widely, in practice.
After 2 years of development, our Eclipse RCP desktop application is finally finished. The last step in development is to allow the client to provide feedback on the wording and labels in the application.
There will be about 10 people providing feedback, but the client is willing to consolidate this before sending this to us for implementation.
My first idea is to provide a Google Form which requires them to upload a screenshot and to precisely specify where the text to be changed is located. I am now wondering whether a framework exists to do this automatically (i.e. press 'CTRL+ALT' and you can automatically draw a box around the offending text in the application.
In short: Are there any user feedback tools specifically designed to collect feedback on the wording in a GUI?
Mylyn includes some facilities to do (almost) exactly this. In a standard Eclipse, try Help -> Report Bug or Enhancement...
You use various org.eclipse.mylyn.tasks... extension points to specify things like product, area and bug template.
I have inherited a pile of Matlab scripts that manually build a GUI using calls to uicontrol, uimenu, etc. Over the years we have needed to remove and add elements to the GUI and since all the positions are specified manually in the scripts, the layout hasn't really changed to accommodate the missing elements so it is really starting to look like a pile of trash.
Is there a way to automatically convert my matlab scripted gui into something I can use with guide? I would rather not have to start over...
GUIs generated with GUIDE are not much better than manually scripted ones (if not worse in my opinion in terms of maintainability).
The sad truth is that there are no builtin layout managers in MATLAB (there are user-contributed ones on FEX like border layout, gridbag layout and others). If you are refactoring the code, please consider using some sort of GUI layout manager.
To answer your question, afaik there is no automatic tool for such a conversion.
To be exact, MATLAB has some undocumented layout managers: uiflowcontainer and uigridcontainer. See this article by Yair Altman
Well, there is no automatic conversion utility but you dont need to create everything from scratch with GUIDE.
Execute your GUI so that it shows up and save the figure window as a fig file. This file then can be edited with guide.
However this needs manual adjustments in your code. Especially if you need access to handles and I am also not sure about the callback functions.
However, as Amro already pointed out, GUIDE is not a perfect solution.
I want to show my designer something so he ccan build it for my iPhone app.
Is there any website or tool in which I can easilie draw something with iPhone patterns or something and show him what I want to have?
some easy and free tool I have been using in the past: http://mokk.me/
But beware - it's still in beta, but compared to other tools which require either Adobe AIR ( http://www.balsamiq.com/ ) or are bound to a single platform (Mac, Win) and somewhat expensive this is a really good way to draw mockups for an iPhone App.
These are some of the tools for iOS. But most of them are at a cost. you can try whichever is convenient for you.
http://www.omnigroup.com/products/omnigraffle/
http://graffletopia.com/
http://www.teehanlax.com/blog/iphone-gui-psd-v4/
http://balsamiq.com/download
http://keynotopia.com/
https://gomockingbird.com/
Another approach would be to use the "Storyboard" feature within newer versions of Xcode. Even though it's designed to produce actual interfaces for programs, it also works well as a high-level design tool for describing a sequence of screens and how they relate to each other.
In my current project, I'm not using a storyboard for the actual UI (because I need a little more control over view logic than it allows) but I do use it to sketch out how the visual portions of the application should appear and how they should interact with each other.